import React from 'react'; import { describe, expect, test } from 'vitest'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { App } from '../src/iframe/App'; import { DemoSection } from '../src/components/DemoSection'; describe('layout', () => { test('header displays UI Kit Showcase title', () => { render(); expect(screen.getByText('UI Kit Showcase')).toBeInTheDocument(); }); test('theme toggle button is visible', () => { render(); expect(screen.getByRole('button', { name: /toggle theme/i })).toBeInTheDocument(); }); test('category tabs are displayed', () => { render(); ['Core', 'Data', 'Dialogs', 'Feedback', 'Form', 'Navigation'].forEach((label) => { expect(screen.getByRole('tab', { name: label })).toBeInTheDocument(); }); }); test('clicking a tab switches content', async () => { const user = userEvent.setup(); render(); await user.click(screen.getByRole('tab', { name: 'Data' })); expect(screen.getByText('DataTable')).toBeInTheDocument(); }); test('default tab is Core', () => { render(); expect(screen.getByText('Button')).toBeInTheDocument(); }); }); describe('DemoSection', () => { test('renders title text', () => { render(
Child
); expect(screen.getByText('Sample')).toBeInTheDocument(); }); test('renders description text', () => { render(
Child
); expect(screen.getByText('Desc')).toBeInTheDocument(); }); test('renders children in demo area', () => { render(
Child
); expect(screen.getByText('Child')).toBeInTheDocument(); }); });