From 38bfc4ba4b64279e90b592c5b0958407c9321263 Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Fri, 17 Apr 2026 20:09:41 +0300 Subject: [PATCH] test(TechTech): cover TextTech with tests --- .../ui/TechText/TechText.svelte.test.ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/shared/ui/TechText/TechText.svelte.test.ts diff --git a/src/shared/ui/TechText/TechText.svelte.test.ts b/src/shared/ui/TechText/TechText.svelte.test.ts new file mode 100644 index 0000000..f335198 --- /dev/null +++ b/src/shared/ui/TechText/TechText.svelte.test.ts @@ -0,0 +1,38 @@ +import { + render, + screen, +} from '@testing-library/svelte'; +import { createRawSnippet } from 'svelte'; +import TechText from './TechText.svelte'; + +function textSnippet(text: string) { + return createRawSnippet(() => ({ render: () => `${text}` })); +} + +describe('TechText', () => { + it('renders text content in a code element', () => { + render(TechText, { children: textSnippet('400px') }); + expect(screen.getByText('400px')).toBeInTheDocument(); + const { container } = render(TechText, { children: textSnippet('400px') }); + expect(container.querySelector('code')).toBeInTheDocument(); + }); + + it('renders nothing when no children', () => { + const { container } = render(TechText); + expect(container.querySelector('code')).toBeInTheDocument(); + expect(container.querySelector('code')?.textContent?.trim()).toBe(''); + }); + + it.each(['default', 'accent', 'muted', 'success', 'warning', 'error'] as const)( + 'renders %s variant without error', + variant => { + render(TechText, { children: textSnippet('val'), variant }); + expect(screen.getAllByText('val')[0]).toBeInTheDocument(); + }, + ); + + it.each(['xs', 'sm', 'md', 'lg'] as const)('renders %s size without error', size => { + render(TechText, { children: textSnippet('val'), size }); + expect(screen.getAllByText('val')[0]).toBeInTheDocument(); + }); +});