test(Footnote): cover Footnote with tests
This commit is contained in:
33
src/shared/ui/Footnote/Footnote.svelte.test.ts
Normal file
33
src/shared/ui/Footnote/Footnote.svelte.test.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import {
|
||||
render,
|
||||
screen,
|
||||
} from '@testing-library/svelte';
|
||||
import { createRawSnippet } from 'svelte';
|
||||
import Footnote from './Footnote.svelte';
|
||||
|
||||
function textSnippet(text: string) {
|
||||
return createRawSnippet(() => ({ render: () => `<span>${text}</span>` }));
|
||||
}
|
||||
|
||||
describe('Footnote', () => {
|
||||
it('renders children content in a span', () => {
|
||||
render(Footnote, { children: textSnippet('* measured at 20°C') });
|
||||
expect(screen.getByText('* measured at 20°C')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('renders nothing when no children or render', () => {
|
||||
const { container } = render(Footnote);
|
||||
expect(container.firstElementChild).toBeNull();
|
||||
});
|
||||
|
||||
it('passes class to the render snippet', () => {
|
||||
const renderSnippet = createRawSnippet<[{ class: string }]>(getParams => ({
|
||||
render: () => {
|
||||
const cls = getParams().class;
|
||||
return `<span class="${cls}">note</span>`;
|
||||
},
|
||||
}));
|
||||
const { container } = render(Footnote, { render: renderSnippet });
|
||||
expect(container.querySelector('span')?.className).toContain('font-mono');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user