grafana/public/app/features/alerting/unified/components/CollapseToggle.test.tsx
Josh Hunt 3c6e0e8ef8
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00

31 lines
1.2 KiB
TypeScript

import { render, screen } from '@testing-library/react';
import { noop } from 'lodash';
import React from 'react';
import { CollapseToggle } from './CollapseToggle';
describe('TestToggle', () => {
it('should render text', () => {
render(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button')).toHaveTextContent('Hello, world');
});
it('should respect isCollapsed', () => {
const { rerender } = render(<CollapseToggle isCollapsed={false} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button', { expanded: true })).toBeInTheDocument();
rerender(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button', { expanded: false })).toBeInTheDocument();
});
it('should call onToggle', () => {
const onToggle = jest.fn();
render(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={onToggle} />);
screen.getByRole('button').click();
expect(onToggle).toHaveBeenCalledWith(false);
// it should also not have any impact on the actual expanded state since the component does not track its own state
expect(screen.getByRole('button', { expanded: false })).toBeInTheDocument();
});
});