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