Barazo default frontend barazo.forum
at main 37 lines 1.2 kB view raw
1/** 2 * Tests for MarkdownPreview component. 3 */ 4 5import { describe, it, expect } from 'vitest' 6import { render, screen } from '@testing-library/react' 7import { axe } from 'vitest-axe' 8import { MarkdownPreview } from './markdown-preview' 9 10describe('MarkdownPreview', () => { 11 it('renders markdown content', () => { 12 render(<MarkdownPreview content="**bold text**" />) 13 expect(screen.getByText('bold text')).toBeInTheDocument() 14 }) 15 16 it('renders empty state when no content', () => { 17 render(<MarkdownPreview content="" />) 18 expect(screen.getByText('Nothing to preview')).toBeInTheDocument() 19 }) 20 21 it('has preview label', () => { 22 render(<MarkdownPreview content="Hello" />) 23 expect(screen.getByText('Preview')).toBeInTheDocument() 24 }) 25 26 it('renders links correctly', () => { 27 render(<MarkdownPreview content="[Barazo](https://barazo.forum)" />) 28 const link = screen.getByRole('link', { name: 'Barazo' }) 29 expect(link).toHaveAttribute('href', 'https://barazo.forum') 30 }) 31 32 it('passes axe accessibility check', async () => { 33 const { container } = render(<MarkdownPreview content="# Heading\n\nSome **bold** text." />) 34 const results = await axe(container) 35 expect(results).toHaveNoViolations() 36 }) 37})