X-Git-Url: https://git.r.bdr.sh/rbdr/forum/blobdiff_plain/879fa389c2592760def75177eefbd3193e1845c9..47b0bfe47e6f13d549897149b0abc4a72ba8ac88:/src/components/language_selector/language_selector.test.js diff --git a/src/components/language_selector/language_selector.test.js b/src/components/language_selector/language_selector.test.js new file mode 100644 index 0000000..baf11bb --- /dev/null +++ b/src/components/language_selector/language_selector.test.js @@ -0,0 +1,44 @@ +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 '$/config/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-US'); + })(); + const spanish = internals.results.getByText('Español'); + userEvent.selectOptions(spanish.closest('select'), spanish); + await act(); + locale.subscribe((localeValue) => { + + expect(localeValue).toBe('es'); + })(); + }); +}); +