Barazo default frontend
barazo.forum
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})