mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 23:45:44 +01:00
added missing tests for language select of DateFromNow
This commit is contained in:
25
scm-ui/ui-components/src/DateFromNow.test.ts
Normal file
25
scm-ui/ui-components/src/DateFromNow.test.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { chooseLocale, supportedLocales } from "./DateFromNow";
|
||||
|
||||
describe("test choose locale", () => {
|
||||
|
||||
it("should choose de", () => {
|
||||
const locale = chooseLocale("de_DE", ["de", "en"]);
|
||||
expect(locale).toBe(supportedLocales.de);
|
||||
});
|
||||
|
||||
it("should choose de, even without language array", () => {
|
||||
const locale = chooseLocale("de", []);
|
||||
expect(locale).toBe(supportedLocales.de);
|
||||
});
|
||||
|
||||
it("should choose es", () => {
|
||||
const locale = chooseLocale("de", ["af", "be", "es"]);
|
||||
expect(locale).toBe(supportedLocales.es);
|
||||
});
|
||||
|
||||
it("should fallback en", () => {
|
||||
const locale = chooseLocale("af", ["af", "be"]);
|
||||
expect(locale).toBe(supportedLocales.en);
|
||||
});
|
||||
|
||||
});
|
||||
@@ -10,7 +10,7 @@ type LocaleMap = {
|
||||
|
||||
type DateInput = Date | string;
|
||||
|
||||
const supportedLocales: LocaleMap = {
|
||||
export const supportedLocales: LocaleMap = {
|
||||
enUS,
|
||||
en: enUS,
|
||||
de,
|
||||
@@ -41,23 +41,26 @@ const DateElement = styled.time`
|
||||
cursor: help;
|
||||
`;
|
||||
|
||||
class DateFromNow extends React.Component<Props> {
|
||||
getLocale = (): Locale => {
|
||||
const { i18n } = this.props;
|
||||
|
||||
for (const lng of i18n.languages || []) {
|
||||
const locale = supportedLocales[lng];
|
||||
if (locale) {
|
||||
return locale;
|
||||
}
|
||||
}
|
||||
|
||||
const locale = supportedLocales[i18n.language];
|
||||
export const chooseLocale = (language: string, languages?: string[]) => {
|
||||
for (const lng of languages || []) {
|
||||
const locale = supportedLocales[lng];
|
||||
if (locale) {
|
||||
return locale;
|
||||
}
|
||||
}
|
||||
|
||||
return enUS;
|
||||
const locale = supportedLocales[language];
|
||||
if (locale) {
|
||||
return locale;
|
||||
}
|
||||
|
||||
return enUS;
|
||||
};
|
||||
|
||||
class DateFromNow extends React.Component<Props> {
|
||||
getLocale = (): Locale => {
|
||||
const { i18n } = this.props;
|
||||
return chooseLocale(i18n.language, i18n.languages);
|
||||
};
|
||||
|
||||
createOptions = () => {
|
||||
|
||||
Reference in New Issue
Block a user