Compare commits

4 Commits
4 changed files with 848 additions and 844 deletions
@@ -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
+91 -89
View File
@@ -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);
});
}); });
+35 -35
View File
@@ -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);
}); });