UNPKG

datajunction-ui

Version:

DataJunction Metrics Platform UI

52 lines (46 loc) 1.52 kB
import React from 'react'; import { render, fireEvent, screen, waitFor } from '@testing-library/react'; import Collapse from '../Collapse'; import { mocks } from '../../../../mocks/mockNodes'; import { ReactFlowProvider } from 'reactflow'; jest.mock('../DJNodeDimensions', () => ({ DJNodeDimensions: jest.fn(data => <div>DJNodeDimensions content</div>), })); describe('<Collapse />', () => { const defaultProps = { collapsed: true, text: 'Dimensions', data: mocks.mockMetricNode, }; it('renders without crashing', () => { render(<Collapse {...defaultProps} />); }); it('renders toggle for metric type', () => { const { getByText } = render( <Collapse {...defaultProps} data={mocks.mockMetricNode} />, ); const button = screen.getByText('▶ Show Dimensions'); fireEvent.click(button); expect(getByText('▼ Hide Dimensions')).toBeInTheDocument(); }); it('toggles More/Less button text for non-metric type on click', () => { defaultProps.text = 'Columns'; const { getByText } = render( <ReactFlowProvider> <Collapse {...defaultProps} data={{ type: 'transform', column_names: Array(11).fill(idx => { return `column-${idx}`; }), primary_key: [], }} /> </ReactFlowProvider>, ); const button = getByText('▶ More Columns'); fireEvent.click(button); expect(getByText('▼ Less Columns')).toBeInTheDocument(); }); });