Fixes: 1. media.ts: wrap placeholder generation in try-catch 2. toolbar.ts: check r.ok, display error message in popover
43 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
});
|