aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/language_selector/language_selector.test.ts
blob: 74156bc31e291c1eb5fa76b2e968c40195ec014c (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
/**
 * @jest-environment jsdom
 */

import '@testing-library/jest-dom/extend-expect';

import { locale } from 'svelte-i18n';
import { act, render } from '@testing-library/svelte';
import userEvent from '@testing-library/user-event';
import '$lib/i18n';

import LanguageSelector from './language_selector.svelte';

const internals = {
  results: null
};

describe('Language Selector component', () => {

  beforeEach(() => {

    internals.results = render(LanguageSelector);
  });

  test('Should display languages in their own language', () => {

    expect(internals.results.getByText('English'))
      .toBeVisible();
    expect(internals.results.getByText('Español'))
      .toBeVisible();
  });

  test('Should change locale when a language is selected', async () => {

    locale.subscribe((localeValue) => {

      expect(localeValue).toBe('en');
    })();
    const spanish = internals.results.getByText('Español');
    await userEvent.selectOptions(spanish.closest('select'), spanish);
    await act();
    locale.subscribe((localeValue) => {

      expect(localeValue).toBe('es');
    })();
  });
});