react-day-picker / src /helpers /getLabels.test.ts
AbdulElahGwaith's picture
Upload folder using huggingface_hub
cf86710 verified
import { DateLib } from "../classes/DateLib.js";
import { enUS } from "../locale/en-US.js";
import { fr } from "../locale/fr.js";
import { it } from "../locale/it.js";
import { ja } from "../locale/ja.js";
import { getLabels } from "./getLabels.js";
describe("getLabels", () => {
test("uses locale string labels when custom labels are not provided", () => {
const dateLib = new DateLib({
locale: {
...enUS,
labels: { labelPrevious: "Indietro" },
},
});
const labels = getLabels(undefined, dateLib.options);
expect(labels.labelPrevious(new Date())).toBe("Indietro");
});
test("uses locale label functions when available", () => {
const dateLib = new DateLib({
locale: {
...enUS,
labels: {
labelWeekday: (date) => `weekday-${date.getDay()}`,
},
},
});
const labels = getLabels(undefined, dateLib.options);
expect(labels.labelWeekday(new Date(2024, 0, 1))).toBe("weekday-1");
});
test("custom labels override locale labels", () => {
const custom = { labelNext: () => "custom-next" };
const labels = getLabels(custom, new DateLib({ locale: ja }).options);
expect(labels.labelNext(new Date())).toBe("custom-next");
});
test("falls back to defaults when locale does not define a label", () => {
const locale = { ...enUS, labels: {} };
const labels = getLabels(undefined, new DateLib({ locale }).options);
expect(labels.labelWeekNumber(1)).toBe("Week 1");
});
test("uses Italian locale label translations", () => {
const dateLib = new DateLib({ locale: it });
const labels = getLabels(undefined, dateLib.options);
expect(labels.labelPrevious(new Date())).toBe("Vai al mese precedente");
expect(labels.labelMonthDropdown()).toBe("Scegli il mese");
expect(labels.labelWeekNumber(3)).toBe("Settimana 3");
expect(labels.labelYearDropdown()).toBe("Scegli l’anno");
});
test("uses French locale label translations", () => {
const dateLib = new DateLib({ locale: fr });
const labels = getLabels(undefined, dateLib.options);
expect(labels.labelPrevious(new Date())).toBe("Aller au mois précédent");
expect(labels.labelMonthDropdown()).toBe("Choisir le mois");
expect(labels.labelWeekNumber(2)).toBe("Semaine 2");
expect(labels.labelYearDropdown()).toBe("Choisir l'année");
});
});