123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
- import ArrayValue from 'sentry/utils/discover/arrayValue';
- describe('Discover > ArrayValue', function () {
- it('renders an expand link', function () {
- render(<ArrayValue value={['one', 'two', 'three']} />);
- // Should have a button
- const button = screen.getByRole('button');
- expect(button).toHaveTextContent('[+2 more]');
- // Should show last value.
- expect(screen.getByText('three')).toBeInTheDocument();
- });
- it('renders all elements when expanded', function () {
- render(<ArrayValue value={['one', 'two', 'three', '', null]} />);
- // Should have a button
- let button = screen.getByRole('button');
- userEvent.click(button);
- // Button text should update.
- button = screen.getByRole('button');
- expect(button).toHaveTextContent('[collapse]');
- // Should show all values.
- expect(screen.getByText('one')).toBeInTheDocument();
- expect(screen.getByText('two')).toBeInTheDocument();
- expect(screen.getByText('three')).toBeInTheDocument();
- expect(screen.getByText('(no value)')).toBeInTheDocument();
- expect(screen.getByText('(empty string)')).toBeInTheDocument();
- });
- it('hides toggle on 1 element', function () {
- render(<ArrayValue value={['one']} />);
- expect(screen.queryByRole('button')).not.toBeInTheDocument();
- expect(screen.getByText('one')).toBeInTheDocument();
- });
- it('hides toggle on 0 elements', function () {
- render(<ArrayValue value={[]} />);
- expect(screen.queryByRole('button')).not.toBeInTheDocument();
- });
- });
|