grafana/public/app/core/components/QueryOperationRow/QueryOperationAction.test.tsx
Seyaji bab017799e
Chore: Convert QueryOperationAction test to RTL (#51139)
* Convert QueryOperationAction test to RTL

* Convert QueryOperationAction to RTL

* Convert QueryOperationAction test to RTL
2022-06-21 15:53:10 +01:00

54 lines
1.6 KiB
TypeScript

import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
import { selectors } from '@grafana/e2e-selectors';
import { QueryOperationAction, QueryOperationActionProps } from './QueryOperationAction';
const setup = (propOverrides?: Partial<QueryOperationActionProps>) => {
const props: QueryOperationActionProps = {
icon: 'panel-add',
title: 'test',
onClick: jest.fn(),
disabled: false,
...propOverrides,
};
render(<QueryOperationAction {...props} />);
};
describe('QueryOperationAction tests', () => {
it('should render component', () => {
setup();
expect(
screen.getByRole('button', { name: selectors.components.QueryEditorRow.actionButton('test') })
).toBeInTheDocument();
});
it('should call on click handler', async () => {
const clickSpy = jest.fn();
setup({ disabled: false, onClick: clickSpy });
expect(clickSpy).not.toHaveBeenCalled();
const queryButton = screen.getByRole('button', { name: selectors.components.QueryEditorRow.actionButton('test') });
await userEvent.click(queryButton);
expect(clickSpy).toHaveBeenCalled();
});
it('should not call on click handler when disabled', async () => {
const clickSpy = jest.fn();
setup({ disabled: true, onClick: clickSpy });
expect(clickSpy).not.toHaveBeenCalled();
const queryButton = screen.getByRole('button', { name: selectors.components.QueryEditorRow.actionButton('test') });
await userEvent.click(queryButton);
expect(clickSpy).not.toHaveBeenCalled();
});
});