Files
emdash-patch-imageupload/packages/admin/tests/lib/datetime-local.test.ts
kunthawat 2d1be52177 Emdash source with visual editor image upload fix
Fixes:
1. media.ts: wrap placeholder generation in try-catch
2. toolbar.ts: check r.ok, display error message in popover
2026-05-03 10:44:54 +07:00

43 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
fromDatetimeLocalInputValue,
toDatetimeLocalInputValue,
} from "../../src/lib/datetime-local";
describe("toDatetimeLocalInputValue", () => {
it("returns empty for non-string and empty values", () => {
expect(toDatetimeLocalInputValue(undefined)).toBe("");
expect(toDatetimeLocalInputValue(null)).toBe("");
expect(toDatetimeLocalInputValue(0)).toBe("");
expect(toDatetimeLocalInputValue("")).toBe("");
});
it("strips seconds/ms/Z from full ISO 8601", () => {
expect(toDatetimeLocalInputValue("2026-02-26T09:30:00.000Z")).toBe("2026-02-26T09:30");
});
it("pads date-only values to UTC midnight", () => {
expect(toDatetimeLocalInputValue("2026-02-26")).toBe("2026-02-26T00:00");
});
it("preserves a value already in datetime-local shape", () => {
expect(toDatetimeLocalInputValue("2026-02-26T09:30")).toBe("2026-02-26T09:30");
});
});
describe("fromDatetimeLocalInputValue", () => {
it("returns empty for empty input", () => {
expect(fromDatetimeLocalInputValue("")).toBe("");
});
it("appends seconds/ms/Z so the value matches the validator's ISO shape", () => {
expect(fromDatetimeLocalInputValue("2026-02-26T09:30")).toBe("2026-02-26T09:30:00.000Z");
});
it("round-trips a stored ISO value without drift", () => {
const stored = "2026-02-26T09:30:00.000Z";
expect(fromDatetimeLocalInputValue(toDatetimeLocalInputValue(stored))).toBe(stored);
});
});