adding monkeytype
Some checks failed
Mark Stale PRs / stale (push) Has been cancelled

This commit is contained in:
Benjamin Falch
2026-04-23 13:53:44 +02:00
parent e214a2fd35
commit 2bc741fb78
1930 changed files with 7590652 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
import { describe, it, expect, beforeEach, vi } from "vitest";
import * as DateAndTime from "../../src/ts/utils/date-and-time";
describe("date-and-time", () => {
const testCases = [
{ locale: "en-US", firstDayOfWeek: 0 },
{ locale: "en", firstDayOfWeek: 0 },
{ locale: "de-DE", firstDayOfWeek: 1 },
{ locale: "en-DE", firstDayOfWeek: 1, firefoxFirstDayOfWeek: 0 },
{ locale: "de-AT", firstDayOfWeek: 1 },
{ locale: "ps-AF", firstDayOfWeek: 6, firefoxFirstDayOfWeek: 0 },
{ locale: "de-unknown", firstDayOfWeek: 1 },
{ locale: "xx-yy", firstDayOfWeek: 1, firefoxFirstDayOfWeek: 0 },
];
describe("getFirstDayOfTheWeek", () => {
const languageMock = vi.spyOn(window.navigator, "language", "get");
const localeMock = vi.spyOn(Intl, "Locale");
beforeEach(() => {
languageMock.mockClear();
localeMock.mockClear();
});
it("fallback to sunday for missing language", () => {
//GIVEN
languageMock.mockReturnValue(null as any);
//WHEN / THEN
expect(DateAndTime.getFirstDayOfTheWeek()).toEqual(0);
});
describe("with weekInfo", () => {
it.for(testCases)(`$locale`, ({ locale, firstDayOfWeek }) => {
//GIVEN
languageMock.mockReturnValue(locale);
localeMock.mockImplementation(function (this: any) {
return { weekInfo: { firstDay: firstDayOfWeek } } as any;
});
//WHEN/THEN
expect(DateAndTime.getFirstDayOfTheWeek()).toEqual(firstDayOfWeek);
});
});
describe("with getWeekInfo", () => {
it("with getWeekInfo on monday", () => {
languageMock.mockReturnValue("en-US");
localeMock.mockImplementationOnce(function (this: any) {
return { getWeekInfo: () => ({ firstDay: 1 }) } as any;
});
//WHEN/THEN
expect(DateAndTime.getFirstDayOfTheWeek()).toEqual(1);
});
it("with getWeekInfo on sunday", () => {
languageMock.mockReturnValue("en-US");
localeMock.mockImplementationOnce(function (this: any) {
return { getWeekInfo: () => ({ firstDay: 7 }) } as any;
});
//WHEN/THEN
expect(DateAndTime.getFirstDayOfTheWeek()).toEqual(0);
});
});
describe("without weekInfo (firefox)", () => {
beforeEach(() => {
localeMock.mockImplementation(function (this: any) {
return {} as any;
});
});
it.for(testCases)(
`$locale`,
({ locale, firstDayOfWeek, firefoxFirstDayOfWeek }) => {
//GIVEN
languageMock.mockReturnValue(locale);
//WHEN/THEN
expect(DateAndTime.getFirstDayOfTheWeek()).toEqual(
firefoxFirstDayOfWeek ?? firstDayOfWeek,
);
},
);
});
});
});