Files
av-tools/tests/unit/components/help-dialog.test.tsx

49 lines
1.7 KiB
TypeScript

import { cleanup, render, screen } from '@testing-library/react';
import { afterEach, describe, expect, it, vi } from 'vitest';
import { HelpDialog } from '../../../src/components/HelpDialog';
afterEach(cleanup);
describe('HelpDialog', () => {
it('exposes bundled engine, licence, source and privacy context', () => {
render(<HelpDialog open={false} onClose={vi.fn()} />);
expect(
screen.getByRole('heading', {
name: 'About & licences',
hidden: true,
})
).toBeInTheDocument();
expect(screen.getByText('n5.1.4')).toBeInTheDocument();
expect(screen.getByText('0.12.15')).toBeInTheDocument();
expect(screen.getByText('0.12.10 · ST & MT')).toBeInTheDocument();
expect(
screen.getByText(/copyright © 2026 Albrecht Degering/i)
).toBeInTheDocument();
expect(
screen.getByRole('link', { name: 'Application GPL', hidden: true })
).toHaveAttribute('href', expect.stringContaining('LICENSE'));
expect(
screen.getByRole('link', { name: 'MIT text', hidden: true })
).toHaveAttribute('href', expect.stringContaining('ffmpeg.wasm-MIT'));
expect(
screen.getByRole('link', { name: 'GPL text', hidden: true })
).toHaveAttribute('href', expect.stringContaining('GPL-2.0-or-later'));
expect(
screen.getByRole('link', {
name: 'Complete inventory',
hidden: true,
})
).toHaveAttribute('href', expect.stringContaining('THIRD_PARTY_NOTICES'));
expect(
screen.getByRole('link', {
name: 'Source & reproducibility record',
hidden: true,
})
).toHaveAttribute('href', expect.stringContaining('SOURCE'));
expect(
screen.getByText(/source files stay inside the browser session/i)
).toBeInTheDocument();
});
});