aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/tag/tag.test.ts
blob: 9e4564c7830892f1b94bf684cd840f0381616247 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
 * @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'
		);
	});
});