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