import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import { Switch } from '../switch';
describe('Switch', () => {
it('renders switch', () => {
render();
expect(screen.getByTestId('switch')).toBeInTheDocument();
});
it('applies custom className', () => {
render();
expect(screen.getByTestId('switch')).toHaveClass('custom-switch');
});
it('renders as button role', () => {
render();
const switchEl = screen.getByTestId('switch');
expect(switchEl).toHaveAttribute('role', 'switch');
});
it('has unchecked state by default', () => {
render();
const switchEl = screen.getByTestId('switch');
expect(switchEl).toHaveAttribute('aria-checked', 'false');
});
it('can be checked', () => {
render();
const switchEl = screen.getByTestId('switch');
expect(switchEl).toHaveAttribute('aria-checked', 'true');
});
it('is disabled when disabled prop is true', () => {
render();
const switchEl = screen.getByTestId('switch');
expect(switchEl).toBeDisabled();
});
it('has default styling', () => {
render();
const switchEl = screen.getByTestId('switch');
expect(switchEl).toHaveClass('peer', 'inline-flex');
});
});