// @ts-nocheck import { describe, it, expect } from '@jest/globals'; import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './accordion'; describe('Accordion Components', () => { describe('AccordionItem', () => { it('should render item with children', () => { render( Item Content ); expect(screen.getByText('Item Content')).toBeInTheDocument(); }); it('should have data-slot attribute', () => { render( Item ); expect(screen.getByTestId('item')).toHaveAttribute('data-slot', 'accordion-item'); }); it('should apply custom className', () => { render( Item ); expect(screen.getByText('Item')).toHaveClass('custom-item'); }); }); describe('AccordionTrigger', () => { it('should render trigger text', () => { render( 点击展开 ); expect(screen.getByText('点击展开')).toBeInTheDocument(); }); it('should have data-slot attribute', () => { render( Trigger ); expect(screen.getByTestId('trigger')).toHaveAttribute('data-slot', 'accordion-trigger'); }); it('should apply custom className', () => { render( Trigger ); expect(screen.getByText('Trigger')).toHaveClass('custom-trigger'); }); }); describe('AccordionContent', () => { it('should render content when item is open', () => { render( 标题 展开内容 ); expect(screen.getByText('展开内容')).toBeInTheDocument(); }); it('should have data-slot attribute', () => { render( Content ); expect(screen.getByTestId('content')).toHaveAttribute('data-slot', 'accordion-content'); }); it('should apply custom className', () => { render( Content ); expect(screen.getByText('Content')).toHaveClass('custom-content'); }); }); describe('Accordion Composition', () => { it('should render complete accordion structure', () => { render( 问题一 答案一 问题二 答案二 ); expect(screen.getByText('问题一')).toBeInTheDocument(); expect(screen.getByText('答案一')).toBeInTheDocument(); expect(screen.getByText('问题二')).toBeInTheDocument(); }); }); });