generated from Seekra/repository-template
Compare commits
10
Commits
4dda808601
...
7a68e5fde8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a68e5fde8
|
||
|
|
38b70b6f15
|
||
|
|
4c4a662901
|
||
|
|
a62d38cdb1
|
||
|
|
1b7b7cbc68
|
||
|
|
3bcd71d60c
|
||
|
|
cc7a562887
|
||
|
|
3f40e2142c
|
||
|
|
2917d04ffe
|
||
|
|
f1430622dd
|
@@ -5,3 +5,7 @@ The frontend of the search engine Seekra.
|
|||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
Please execute the setup script in `scripts/` for your platform when cloning the repository.
|
Please execute the setup script in `scripts/` for your platform when cloning the repository.
|
||||||
|
|
||||||
|
## Legal
|
||||||
|
|
||||||
|
After each update to the dependencies, please run the script `scripts/generate-license-files.js` to regenerate the third-party license files.
|
||||||
+3
-1072
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Executable
+58
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2026 Seekra
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import fs from 'node:fs/promises';
|
||||||
|
import { generateLicenseFile } from 'generate-license-file';
|
||||||
|
|
||||||
|
const packageJson = './package.json';
|
||||||
|
const packageJsonBackup = `${packageJson}~`;
|
||||||
|
|
||||||
|
await generateLicenseFile(
|
||||||
|
packageJson,
|
||||||
|
'THIRD_PARTY_LICENSES'
|
||||||
|
);
|
||||||
|
|
||||||
|
const pkg = JSON.parse(
|
||||||
|
await fs.readFile(packageJson, 'utf-8')
|
||||||
|
);
|
||||||
|
|
||||||
|
await fs.rename(packageJson, packageJsonBackup);
|
||||||
|
|
||||||
|
const devPackage = {
|
||||||
|
...pkg,
|
||||||
|
dependencies: pkg.devDependencies ?? {},
|
||||||
|
devDependencies: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
The file including the dependencies for the current license file has
|
||||||
|
to be always package.json due to a bug of generate-license file. See
|
||||||
|
|
||||||
|
https://github.com/TobyAndToby/generate-license-file/issues/752
|
||||||
|
*/
|
||||||
|
await fs.writeFile(
|
||||||
|
packageJson,
|
||||||
|
JSON.stringify(devPackage)
|
||||||
|
);
|
||||||
|
|
||||||
|
await generateLicenseFile(
|
||||||
|
packageJson,
|
||||||
|
'./THIRD_PARTY_LICENSES_DEV'
|
||||||
|
);
|
||||||
|
|
||||||
|
await fs.rename(packageJsonBackup, packageJson);
|
||||||
+5
-8
@@ -46,6 +46,11 @@ watch(colorScheme, val => updateColorScheme(val))
|
|||||||
--main-content-padding-x: 30px;
|
--main-content-padding-x: 30px;
|
||||||
--main-content-padding-y: 40px;
|
--main-content-padding-y: 40px;
|
||||||
--main-content-padding: var(--main-content-padding-y) var(--main-content-padding-x);
|
--main-content-padding: var(--main-content-padding-y) var(--main-content-padding-x);
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
background-color: var(--light-bg);
|
||||||
|
color: var(--dark);
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
@@ -57,12 +62,4 @@ watch(colorScheme, val => updateColorScheme(val))
|
|||||||
--main-content-padding-x: 15px;
|
--main-content-padding-x: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#app-wrapper {
|
|
||||||
min-height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
background-color: var(--light-bg);
|
|
||||||
color: var(--dark);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@@ -39,7 +39,7 @@ vi.mock('@/features/icons/components/Icon.vue', () => ({
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
describe('LanguageSwitchButton.vue', () => {
|
describe('LanguageSwitchButton', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
vi.clearAllMocks();
|
vi.clearAllMocks();
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -14,109 +14,111 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { expect, test } from 'vitest';
|
import { describe, expect, test } from 'vitest';
|
||||||
import { ensureUnit } from '../cssDimensions';
|
import { ensureUnit } from '../cssDimensions';
|
||||||
|
|
||||||
test.for([
|
describe('cssDimensions', () => {
|
||||||
{ dimension: null, expected: '0px' },
|
test.for([
|
||||||
{ dimension: undefined, expected: '0px' },
|
{ dimension: null, expected: '0px' },
|
||||||
|
{ dimension: undefined, expected: '0px' },
|
||||||
|
|
||||||
{ dimension: 0, expected: '0px' },
|
{ dimension: 0, expected: '0px' },
|
||||||
{ dimension: -0, expected: '0px' },
|
{ dimension: -0, expected: '0px' },
|
||||||
{ dimension: -1, expected: '-1px' },
|
{ dimension: -1, expected: '-1px' },
|
||||||
{ dimension: -42, expected: '-42px' },
|
{ dimension: -42, expected: '-42px' },
|
||||||
{ dimension: 1, expected: '1px' },
|
{ dimension: 1, expected: '1px' },
|
||||||
{ dimension: 42, expected: '42px' },
|
{ dimension: 42, expected: '42px' },
|
||||||
|
|
||||||
{ dimension: 0.0, expected: '0px' },
|
{ dimension: 0.0, expected: '0px' },
|
||||||
{ dimension: -0.0, expected: '0px' },
|
{ dimension: -0.0, expected: '0px' },
|
||||||
{ dimension: -1.0, expected: '-1px' },
|
{ dimension: -1.0, expected: '-1px' },
|
||||||
{ dimension: -42.0, expected: '-42px' },
|
{ dimension: -42.0, expected: '-42px' },
|
||||||
{ dimension: 1.0, expected: '1px' },
|
{ dimension: 1.0, expected: '1px' },
|
||||||
{ dimension: 42.0, expected: '42px' },
|
{ dimension: 42.0, expected: '42px' },
|
||||||
|
|
||||||
{ dimension: 0.42, expected: '0.42px' },
|
{ dimension: 0.42, expected: '0.42px' },
|
||||||
{ dimension: -0.42, expected: '-0.42px' },
|
{ dimension: -0.42, expected: '-0.42px' },
|
||||||
{ dimension: -1.42, expected: '-1.42px' },
|
{ dimension: -1.42, expected: '-1.42px' },
|
||||||
{ dimension: -42.42, expected: '-42.42px' },
|
{ dimension: -42.42, expected: '-42.42px' },
|
||||||
{ dimension: 1.42, expected: '1.42px' },
|
{ dimension: 1.42, expected: '1.42px' },
|
||||||
{ dimension: 42.42, expected: '42.42px' },
|
{ dimension: 42.42, expected: '42.42px' },
|
||||||
|
|
||||||
{ dimension: '0', expected: '0px' },
|
{ dimension: '0', expected: '0px' },
|
||||||
{ dimension: '-0', expected: '-0px' },
|
{ dimension: '-0', expected: '-0px' },
|
||||||
{ dimension: '-1', expected: '-1px' },
|
{ dimension: '-1', expected: '-1px' },
|
||||||
{ dimension: '-42', expected: '-42px' },
|
{ dimension: '-42', expected: '-42px' },
|
||||||
{ dimension: '1', expected: '1px' },
|
{ dimension: '1', expected: '1px' },
|
||||||
{ dimension: '42', expected: '42px' },
|
{ dimension: '42', expected: '42px' },
|
||||||
|
|
||||||
{ dimension: '0.0', expected: '0.0px' },
|
{ dimension: '0.0', expected: '0.0px' },
|
||||||
{ dimension: '-0.0', expected: '-0.0px' },
|
{ dimension: '-0.0', expected: '-0.0px' },
|
||||||
{ dimension: '-1.0', expected: '-1.0px' },
|
{ dimension: '-1.0', expected: '-1.0px' },
|
||||||
{ dimension: '-42.0', expected: '-42.0px' },
|
{ dimension: '-42.0', expected: '-42.0px' },
|
||||||
{ dimension: '1.0', expected: '1.0px' },
|
{ dimension: '1.0', expected: '1.0px' },
|
||||||
{ dimension: '42.0', expected: '42.0px' },
|
{ dimension: '42.0', expected: '42.0px' },
|
||||||
|
|
||||||
{ dimension: '0.42', expected: '0.42px' },
|
{ dimension: '0.42', expected: '0.42px' },
|
||||||
{ dimension: '-0.42', expected: '-0.42px' },
|
{ dimension: '-0.42', expected: '-0.42px' },
|
||||||
{ dimension: '-1.42', expected: '-1.42px' },
|
{ dimension: '-1.42', expected: '-1.42px' },
|
||||||
{ dimension: '-42.42', expected: '-42.42px' },
|
{ dimension: '-42.42', expected: '-42.42px' },
|
||||||
{ dimension: '1.42', expected: '1.42px' },
|
{ dimension: '1.42', expected: '1.42px' },
|
||||||
{ dimension: '42.42', expected: '42.42px' },
|
{ dimension: '42.42', expected: '42.42px' },
|
||||||
|
|
||||||
{ dimension: '0px', expected: '0px' },
|
{ dimension: '0px', expected: '0px' },
|
||||||
{ dimension: '-0px', expected: '-0px' },
|
{ dimension: '-0px', expected: '-0px' },
|
||||||
{ dimension: '-1px', expected: '-1px' },
|
{ dimension: '-1px', expected: '-1px' },
|
||||||
{ dimension: '-42px', expected: '-42px' },
|
{ dimension: '-42px', expected: '-42px' },
|
||||||
{ dimension: '1px', expected: '1px' },
|
{ dimension: '1px', expected: '1px' },
|
||||||
{ dimension: '42px', expected: '42px' },
|
{ dimension: '42px', expected: '42px' },
|
||||||
|
|
||||||
{ dimension: '0.0px', expected: '0.0px' },
|
{ dimension: '0.0px', expected: '0.0px' },
|
||||||
{ dimension: '-0.0px', expected: '-0.0px' },
|
{ dimension: '-0.0px', expected: '-0.0px' },
|
||||||
{ dimension: '-1.0px', expected: '-1.0px' },
|
{ dimension: '-1.0px', expected: '-1.0px' },
|
||||||
{ dimension: '-42.0px', expected: '-42.0px' },
|
{ dimension: '-42.0px', expected: '-42.0px' },
|
||||||
{ dimension: '1.0px', expected: '1.0px' },
|
{ dimension: '1.0px', expected: '1.0px' },
|
||||||
{ dimension: '42.0px', expected: '42.0px' },
|
{ dimension: '42.0px', expected: '42.0px' },
|
||||||
|
|
||||||
{ dimension: '0.42px', expected: '0.42px' },
|
{ dimension: '0.42px', expected: '0.42px' },
|
||||||
{ dimension: '-0.42px', expected: '-0.42px' },
|
{ dimension: '-0.42px', expected: '-0.42px' },
|
||||||
{ dimension: '-1.42px', expected: '-1.42px' },
|
{ dimension: '-1.42px', expected: '-1.42px' },
|
||||||
{ dimension: '-42.42px', expected: '-42.42px' },
|
{ dimension: '-42.42px', expected: '-42.42px' },
|
||||||
{ dimension: '1.42px', expected: '1.42px' },
|
{ dimension: '1.42px', expected: '1.42px' },
|
||||||
{ dimension: '42.42px', expected: '42.42px' },
|
{ dimension: '42.42px', expected: '42.42px' },
|
||||||
|
|
||||||
{ dimension: '0em', expected: '0em' },
|
{ dimension: '0em', expected: '0em' },
|
||||||
{ dimension: '-0em', expected: '-0em' },
|
{ dimension: '-0em', expected: '-0em' },
|
||||||
{ dimension: '-1em', expected: '-1em' },
|
{ dimension: '-1em', expected: '-1em' },
|
||||||
{ dimension: '-42em', expected: '-42em' },
|
{ dimension: '-42em', expected: '-42em' },
|
||||||
{ dimension: '1em', expected: '1em' },
|
{ dimension: '1em', expected: '1em' },
|
||||||
{ dimension: '42em', expected: '42em' },
|
{ dimension: '42em', expected: '42em' },
|
||||||
|
|
||||||
{ dimension: '0.0em', expected: '0.0em' },
|
{ dimension: '0.0em', expected: '0.0em' },
|
||||||
{ dimension: '-0.0em', expected: '-0.0em' },
|
{ dimension: '-0.0em', expected: '-0.0em' },
|
||||||
{ dimension: '-1.0em', expected: '-1.0em' },
|
{ dimension: '-1.0em', expected: '-1.0em' },
|
||||||
{ dimension: '-42.0em', expected: '-42.0em' },
|
{ dimension: '-42.0em', expected: '-42.0em' },
|
||||||
{ dimension: '1.0em', expected: '1.0em' },
|
{ dimension: '1.0em', expected: '1.0em' },
|
||||||
{ dimension: '42.0em', expected: '42.0em' },
|
{ dimension: '42.0em', expected: '42.0em' },
|
||||||
|
|
||||||
{ dimension: '0.42em', expected: '0.42em' },
|
{ dimension: '0.42em', expected: '0.42em' },
|
||||||
{ dimension: '-0.42em', expected: '-0.42em' },
|
{ dimension: '-0.42em', expected: '-0.42em' },
|
||||||
{ dimension: '-1.42em', expected: '-1.42em' },
|
{ dimension: '-1.42em', expected: '-1.42em' },
|
||||||
{ dimension: '-42.42em', expected: '-42.42em' },
|
{ dimension: '-42.42em', expected: '-42.42em' },
|
||||||
{ dimension: '1.42em', expected: '1.42em' },
|
{ dimension: '1.42em', expected: '1.42em' },
|
||||||
{ dimension: '42.42em', expected: '42.42em' },
|
{ dimension: '42.42em', expected: '42.42em' },
|
||||||
|
|
||||||
{ dimension: 'calc(42px - 1em)', expected: 'calc(42px - 1em)' },
|
{ dimension: 'calc(42px - 1em)', expected: 'calc(42px - 1em)' },
|
||||||
{ dimension: 'calc(42px)', expected: 'calc(42px)' },
|
{ dimension: 'calc(42px)', expected: 'calc(42px)' },
|
||||||
{ dimension: 'calc(42vh)', expected: 'calc(42vh)' },
|
{ dimension: 'calc(42vh)', expected: 'calc(42vh)' },
|
||||||
{ dimension: 'min(42px, 1em)', expected: 'min(42px, 1em)' },
|
{ dimension: 'min(42px, 1em)', expected: 'min(42px, 1em)' },
|
||||||
{ dimension: 'max(42px, 5rem)', expected: 'max(42px, 5rem)' },
|
{ dimension: 'max(42px, 5rem)', expected: 'max(42px, 5rem)' },
|
||||||
{ dimension: 'clamp(42vh, 23vw, 13cap)', expected: 'clamp(42vh, 23vw, 13cap)' },
|
{ dimension: 'clamp(42vh, 23vw, 13cap)', expected: 'clamp(42vh, 23vw, 13cap)' },
|
||||||
|
|
||||||
{ dimension: 'calc(42px-1em)', expected: 'calc(42px-1em)' },
|
{ dimension: 'calc(42px-1em)', expected: 'calc(42px-1em)' },
|
||||||
{ dimension: 'min(42px,1em)', expected: 'min(42px,1em)' },
|
{ dimension: 'min(42px,1em)', expected: 'min(42px,1em)' },
|
||||||
{ dimension: 'max(42px,5rem)', expected: 'max(42px,5rem)' },
|
{ dimension: 'max(42px,5rem)', expected: 'max(42px,5rem)' },
|
||||||
{ dimension: 'clamp(42vh,23vw,13cap)', expected: 'clamp(42vh,23vw,13cap)' },
|
{ dimension: 'clamp(42vh,23vw,13cap)', expected: 'clamp(42vh,23vw,13cap)' },
|
||||||
{ dimension: 'clamp( 42vh,23vw,13cap )', expected: 'clamp( 42vh,23vw,13cap )' }
|
{ dimension: 'clamp( 42vh,23vw,13cap )', expected: 'clamp( 42vh,23vw,13cap )' }
|
||||||
])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => {
|
])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => {
|
||||||
expect(ensureUnit(dimension)).toBe(expected);
|
expect(ensureUnit(dimension)).toBe(expected);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
@@ -14,48 +14,48 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { expect, test } from 'vitest';
|
import { describe, expect, test } from 'vitest';
|
||||||
import getCurrentLanguage from '../currentLanguage';
|
import getCurrentLanguage from '../currentLanguage';
|
||||||
|
|
||||||
const locales = [
|
describe('currentLanguage', () => {
|
||||||
{ navigatorLanguage: 'en', localStorageLanguage: null, expected: 'en'},
|
test.for([
|
||||||
{ navigatorLanguage: 'de', localStorageLanguage: null, expected: 'de'},
|
{ navigatorLanguage: 'en', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'fr', localStorageLanguage: null, expected: 'fr'},
|
{ navigatorLanguage: 'de', localStorageLanguage: null, expected: 'de'},
|
||||||
|
{ navigatorLanguage: 'fr', localStorageLanguage: null, expected: 'fr'},
|
||||||
|
|
||||||
{ navigatorLanguage: 'en-US', localStorageLanguage: null, expected: 'en'},
|
{ navigatorLanguage: 'en-US', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'en-AU', localStorageLanguage: null, expected: 'en'},
|
{ navigatorLanguage: 'en-AU', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'de-DE', localStorageLanguage: null, expected: 'de'},
|
{ navigatorLanguage: 'de-DE', localStorageLanguage: null, expected: 'de'},
|
||||||
{ navigatorLanguage: 'fr-FR', localStorageLanguage: null, expected: 'fr'},
|
{ navigatorLanguage: 'fr-FR', localStorageLanguage: null, expected: 'fr'},
|
||||||
|
|
||||||
{ navigatorLanguage: 'en-us', localStorageLanguage: null, expected: 'en'},
|
{ navigatorLanguage: 'en-us', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'en-au', localStorageLanguage: null, expected: 'en'},
|
{ navigatorLanguage: 'en-au', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'de-de', localStorageLanguage: null, expected: 'de'},
|
{ navigatorLanguage: 'de-de', localStorageLanguage: null, expected: 'de'},
|
||||||
{ navigatorLanguage: 'fr-fr', localStorageLanguage: null, expected: 'fr'},
|
{ navigatorLanguage: 'fr-fr', localStorageLanguage: null, expected: 'fr'},
|
||||||
|
|
||||||
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: null, expected: 'zh'},
|
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: null, expected: 'zh'},
|
||||||
{ navigatorLanguage: 'zh-Hant-TW', localStorageLanguage: null, expected: 'zh'},
|
{ navigatorLanguage: 'zh-Hant-TW', localStorageLanguage: null, expected: 'zh'},
|
||||||
{ navigatorLanguage: 'uz-Latn-UZ', localStorageLanguage: null, expected: 'uz'},
|
{ navigatorLanguage: 'uz-Latn-UZ', localStorageLanguage: null, expected: 'uz'},
|
||||||
|
|
||||||
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: null, expected: 'en'},
|
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: null, expected: 'en'},
|
||||||
{ navigatorLanguage: 'de-DE-u-co-phonebk', localStorageLanguage: null, expected: 'de'},
|
{ navigatorLanguage: 'de-DE-u-co-phonebk', localStorageLanguage: null, expected: 'de'},
|
||||||
{ navigatorLanguage: 'zh-Hant-TW-u-co-phonebk', localStorageLanguage: null, expected: 'zh'},
|
{ navigatorLanguage: 'zh-Hant-TW-u-co-phonebk', localStorageLanguage: null, expected: 'zh'},
|
||||||
|
|
||||||
{ navigatorLanguage: 'en', localStorageLanguage: 'de', expected: 'de'},
|
{ navigatorLanguage: 'en', localStorageLanguage: 'de', expected: 'de'},
|
||||||
{ navigatorLanguage: 'de-DE', localStorageLanguage: 'en', expected: 'en'},
|
{ navigatorLanguage: 'de-DE', localStorageLanguage: 'en', expected: 'en'},
|
||||||
{ navigatorLanguage: 'de-de', localStorageLanguage: 'en', expected: 'en'},
|
{ navigatorLanguage: 'de-de', localStorageLanguage: 'en', expected: 'en'},
|
||||||
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: 'fr', expected: 'fr'},
|
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: 'fr', expected: 'fr'},
|
||||||
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: 'zh', expected: 'zh'}
|
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: 'zh', expected: 'zh'}
|
||||||
];
|
])('returns the language $expected (navigator: $navigatorLanguage; local storage: $localStorageLanguage)', ({ navigatorLanguage, localStorageLanguage, expected }) => {
|
||||||
|
Object.defineProperty(navigator, 'language', {
|
||||||
|
value: navigatorLanguage,
|
||||||
|
configurable: true
|
||||||
|
});
|
||||||
|
|
||||||
test.for(locales)('returns the language $expected (navigator: $navigatorLanguage; local storage: $localStorageLanguage)', ({ navigatorLanguage, localStorageLanguage, expected }) => {
|
if (localStorageLanguage) {
|
||||||
Object.defineProperty(navigator, 'language', {
|
localStorage.setItem('locale', localStorageLanguage);
|
||||||
value: navigatorLanguage,
|
};
|
||||||
configurable: true
|
|
||||||
|
expect(getCurrentLanguage()).toBe(expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (localStorageLanguage) {
|
|
||||||
localStorage.setItem('locale', localStorageLanguage);
|
|
||||||
};
|
|
||||||
|
|
||||||
expect(getCurrentLanguage()).toBe(expected);
|
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user