/** * @jest-environment jsdom */ import '@testing-library/jest-dom/extend-expect'; import { render } from '@testing-library/svelte'; import '$lib/i18n'; import Tag from './tag.svelte'; const internals = { results: null }; describe('Tag component', () => { beforeEach(() => { internals.results = render(Tag, { props: { tag: { id: 'avocado', topics: [ { id: 'eb751e7a-5777-46c3-b81b-cc66546d5157', title: 'A single topic', ttl: 160 * 1000, updated_at: Date.now() }, { id: 'b4a5613c-237b-4147-a867-9c105d51e365', title: 'And its companion', ttl: 160 * 1000, updated_at: Date.now() } ] } } }); }); test('It should display the tag title', () => { expect(internals.results.getByText('Tag: avocado')).toBeVisible(); }); test('It should display the topics', () => { expect(internals.results.getByText('A single topic')).toBeVisible(); expect(internals.results.getByText('And its companion')).toBeVisible(); }); test('It should link to the topics', () => { expect(internals.results.getByText('A single topic').closest('a')).toHaveAttribute( 'href', '/t/eb751e7a-5777-46c3-b81b-cc66546d5157' ); expect(internals.results.getByText('And its companion').closest('a')).toHaveAttribute( 'href', '/t/b4a5613c-237b-4147-a867-9c105d51e365' ); }); });