import { render, screen } from '@testing-library/react' import { describe, expect, it } from 'vitest' import { CodeViewer } from './CodeViewer' describe('CodeViewer', () => { it('keeps the same inner padding for highlighted code content', () => { const { container } = render( , ) expect(screen.getByText('cd testb')).toBeTruthy() expect(screen.getByText('npm run dev')).toBeTruthy() const contentWrapper = container.querySelector('[data-code-viewer-content]') as HTMLElement | null expect(contentWrapper).toBeTruthy() expect(contentWrapper?.style.padding).toBe('0.5rem 12px') expect(contentWrapper?.style.whiteSpace).toBe('pre') expect(contentWrapper?.style.wordBreak).toBe('normal') const codeArea = container.querySelector('.code-viewer-area') as HTMLElement | null expect(codeArea?.getAttribute('data-has-line-numbers')).toBe('true') expect(container.querySelector('[data-line-number="1"]')).toBeTruthy() expect(container.querySelector('[data-line-number="2"]')).toBeTruthy() }) it('can wrap long highlighted code content when requested', () => { const { container } = render( /tmp/index.html"}'} language="json" wrapLongLines />, ) const contentWrapper = container.querySelector('[data-code-viewer-content]') as HTMLElement | null expect(contentWrapper).toBeTruthy() expect(contentWrapper?.style.whiteSpace).toBe('pre-wrap') expect(contentWrapper?.style.wordBreak).toBe('break-word') }) })