import { cleanup, render, screen } from '@testing-library/react' import { afterEach, describe, expect, it } from 'vitest' import { ChunkContainer, ChunkLabel, QAPreview } from './chunk' afterEach(() => { cleanup() }) describe('ChunkLabel', () => { it('should render label text', () => { render() expect(screen.getByText('Chunk 1')).toBeInTheDocument() }) it('should render character count', () => { render() expect(screen.getByText('150 characters')).toBeInTheDocument() }) it('should render separator dot', () => { render() expect(screen.getByText('ยท')).toBeInTheDocument() }) it('should render with zero character count', () => { render() expect(screen.getByText('0 characters')).toBeInTheDocument() }) it('should render with large character count', () => { render() expect(screen.getByText('999999 characters')).toBeInTheDocument() }) }) describe('ChunkContainer', () => { it('should render label and character count', () => { render(Content) expect(screen.getByText('Container 1')).toBeInTheDocument() expect(screen.getByText('200 characters')).toBeInTheDocument() }) it('should render children content', () => { render(Test Content) expect(screen.getByText('Test Content')).toBeInTheDocument() }) it('should render with complex children', () => { render(
Nested content
, ) expect(screen.getByTestId('child-div')).toBeInTheDocument() expect(screen.getByText('Nested content')).toBeInTheDocument() }) it('should render empty children', () => { render({null}) expect(screen.getByText('Empty')).toBeInTheDocument() }) }) describe('QAPreview', () => { const mockQA = { question: 'What is the meaning of life?', answer: 'The meaning of life is 42.', } it('should render question text', () => { render() expect(screen.getByText('What is the meaning of life?')).toBeInTheDocument() }) it('should render answer text', () => { render() expect(screen.getByText('The meaning of life is 42.')).toBeInTheDocument() }) it('should render Q label', () => { render() expect(screen.getByText('Q')).toBeInTheDocument() }) it('should render A label', () => { render() expect(screen.getByText('A')).toBeInTheDocument() }) it('should render with empty strings', () => { render() expect(screen.getByText('Q')).toBeInTheDocument() expect(screen.getByText('A')).toBeInTheDocument() }) it('should render with long text', () => { const longQuestion = 'Q'.repeat(500) const longAnswer = 'A'.repeat(500) render() expect(screen.getByText(longQuestion)).toBeInTheDocument() expect(screen.getByText(longAnswer)).toBeInTheDocument() }) it('should render with special characters', () => { render(?', answer: '& special chars!' }} />) expect(screen.getByText('What about