mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* 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
31 lines
1.2 KiB
TypeScript
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();
|
|
});
|
|
});
|