/** * @jest-environment jsdom */ import '@testing-library/jest-dom/extend-expect'; import { render } from '@testing-library/svelte'; import '$lib/i18n'; import TopicSummary from './topic_summary.svelte'; const internals = { results: null }; describe('Topic Summary component', () => { beforeEach(() => { internals.results = render(TopicSummary, { props: { topic: { id: 'ea2431c8-5c1c-4ed0-907a-45e012696ab8', title: 'I sure am a test topic', ttl: 160 * 1000, updated_at: Date.now() } } }); }); test('It should display the title', () => { expect(internals.results.getByText('I sure am a test topic')) .toBeVisible(); }); test('Topic title should be a permalink', () => { expect(internals.results.getByText('I sure am a test topic').closest('a')) .toHaveAttribute('href', '/t/ea2431c8-5c1c-4ed0-907a-45e012696ab8'); }); test('It should display remaining time in readable format', () => { expect(internals.results.getByText(/2 minutes remaining/)) .toBeVisible(); }); });