@kadconsulting/dry
Version:
KAD Reusable Component Library
44 lines • 1.9 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import Toggle from './Toggle';
describe('Toggle', () => {
const defaultProps = {
title: 'Hello World',
text: 'Test Text',
size: 'sm',
};
it('Renders the Title and Text props', () => {
render(_jsx(Toggle, { ...defaultProps }));
expect(screen.getByText('Hello World')).toBeInTheDocument();
expect(screen.getByText('Test Text')).toBeInTheDocument();
});
it('Handles click events', () => {
render(_jsx(Toggle, { ...defaultProps }));
const toggle = screen.getByRole('button');
userEvent.click(toggle);
});
it('Supports different sizes', () => {
const { rerender } = render(_jsx(Toggle, { ...defaultProps, size: 'md' }));
// Add checks for medium size
rerender(_jsx(Toggle, { ...defaultProps, size: 'custom', customSize: { width: 50, height: 30 } }));
// Add checks for custom size
});
it('Is disabled when disabled prop is true', () => {
render(_jsx(Toggle, { ...defaultProps, disabled: true }));
const toggle = screen.getByRole('button');
expect(toggle).toBeDisabled();
});
it('Shows loading state appropriately', () => {
render(_jsx(Toggle, { ...defaultProps, loading: true }));
expect(screen.getByText('Loading...')).toBeInTheDocument();
// Add specific checks for loading state
});
it('Displays tooltip when provided', () => {
render(_jsx(Toggle, { ...defaultProps, tooltip: 'Toggle Tooltip' }));
const toggle = screen.getByRole('button');
expect(toggle).toHaveAttribute('title', 'Toggle Tooltip');
});
// Add more tests as needed to cover all functionality
});
//# sourceMappingURL=Toggle.test.js.map