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();
});
});