import React from 'react'; import { render, screen, fireEvent } from '@testing-library/react'; import { composeStories } from '@storybook/testing-react'; import * as stories from './Dropdown.stories'; const { Default, ControlledState, NonFixedLabel, Iconless } = composeStories(stories); describe('default', () => { it('renders', () => { render(); const element = screen.getByTestId('popoverSelect'); expect(element).toBeDefined(); }); it('renders label', () => { render(); const label = Default.args?.label?.trim(); const element = screen.getAllByText(`${label}`); expect(element).toBeDefined(); }); it('toggles select', () => { const { rerender } = render(); const element = screen.getByTestId('popoverSelect'); fireEvent.click(element); rerender(); const RenderOptions = screen.getByTestId('popoverSelect'); expect(RenderOptions).toBeDefined(); }); }); describe('Controlled State', () => { it('renders', () => { render(); const element = screen.getByTestId('popoverSelect'); expect(element).toBeDefined(); }); it('toggles select', () => { const { rerender } = render(); const element = screen.getByTestId('popoverSelect'); fireEvent.click(element); rerender(); const RenderOptions = screen.getByTestId('popoverSelect'); expect(RenderOptions).toBeDefined(); }); }); describe('NonFixedLabel', () => { it('renders', () => { render(); const element = screen.getByTestId('popoverSelect'); expect(element).toBeDefined(); }); it('renders label', () => { render(); const element = screen.getAllByText('Server:'); expect(element).toBeDefined(); }); it('toggles select', () => { const { rerender } = render(); const element = screen.getByTestId('popoverSelect'); fireEvent.click(element); rerender(); const RenderOptions = screen.getByTestId('popoverSelect'); expect(RenderOptions).toBeDefined(); }); }); describe('IconLess', () => { it('renders', () => { render(); const element = screen.getByTestId('popoverSelect'); expect(element).toBeDefined(); }); it('renders label', () => { render(); const element = screen.getAllByText('Server:'); expect(element).toBeDefined(); }); it('toggles select', () => { const { rerender } = render(); const element = screen.getByTestId('popoverSelect'); fireEvent.click(element); rerender(); const RenderOptions = screen.getByTestId('popoverSelect'); expect(RenderOptions).toBeDefined(); }); });