]> git.r.bdr.sh - rbdr/forum/blame - src/lib/components/language_selector/language_selector.test.ts
Update / use typescript
[rbdr/forum] / src / lib / components / language_selector / language_selector.test.ts
CommitLineData
a7cf03c1
RBR
1/**
2 * @jest-environment jsdom
3 */
4
47b0bfe4
RBR
5import '@testing-library/jest-dom/extend-expect';
6
7import { locale } from 'svelte-i18n';
8import { act, render } from '@testing-library/svelte';
9import userEvent from '@testing-library/user-event';
a7cf03c1 10import '$lib/i18n';
47b0bfe4
RBR
11
12import LanguageSelector from './language_selector.svelte';
13
14const internals = {
15 results: null
16};
17
18describe('Language Selector component', () => {
19
20 beforeEach(() => {
21
22 internals.results = render(LanguageSelector);
23 });
24
25 test('Should display languages in their own language', () => {
26
27 expect(internals.results.getByText('English'))
28 .toBeVisible();
29 expect(internals.results.getByText('Español'))
30 .toBeVisible();
31 });
32
33 test('Should change locale when a language is selected', async () => {
34
35 locale.subscribe((localeValue) => {
36
a7cf03c1 37 expect(localeValue).toBe('en');
47b0bfe4
RBR
38 })();
39 const spanish = internals.results.getByText('Español');
a7cf03c1 40 await userEvent.selectOptions(spanish.closest('select'), spanish);
47b0bfe4
RBR
41 await act();
42 locale.subscribe((localeValue) => {
43
44 expect(localeValue).toBe('es');
45 })();
46 });
47});
48