import { render, screen, fireEvent } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Collapsible, CollapsibleTrigger, CollapsibleContent } from './collapsible'; import React from 'react'; describe('Collapsible', () => { it('renders correctly', () => { render( Toggle Content ); expect(screen.getByText('Toggle')).toBeInTheDocument(); }); it('toggles content visibility', () => { render( Toggle Content ); const trigger = screen.getByText('Toggle'); // Check initial state expect(trigger).toHaveAttribute('data-state', 'closed'); fireEvent.click(trigger); expect(trigger).toHaveAttribute('data-state', 'open'); expect(screen.getByText('Content')).toBeInTheDocument(); fireEvent.click(trigger); expect(trigger).toHaveAttribute('data-state', 'closed'); }); it('has correct data-slot attributes', () => { const { container } = render( Trigger Content ); expect(container.querySelector('[data-slot="collapsible"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="collapsible-trigger"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="collapsible-content"]')).toBeInTheDocument(); }); });