aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/topic_summary/topic_summary.test.ts
blob: f178c89546b9e0511b880b445d056936f025dba9 (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
/**
 * @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();
	});
});