32 lines
975 B
TypeScript
32 lines
975 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { describeCron } from "./cron-readable";
|
|
|
|
describe("describeCron", () => {
|
|
it("describes a daily time", () => {
|
|
expect(describeCron("0 14 * * *")).toBe("Every day at 14:00");
|
|
});
|
|
|
|
it("describes every-weekday", () => {
|
|
expect(describeCron("0 14 * * 1-5")).toBe("Every weekday at 14:00");
|
|
});
|
|
|
|
it("describes a single day-of-week", () => {
|
|
expect(describeCron("30 9 * * 1")).toBe("Every Monday at 09:30");
|
|
});
|
|
|
|
it("describes every N minutes", () => {
|
|
expect(describeCron("*/15 * * * *")).toBe("Every 15 minutes");
|
|
});
|
|
|
|
it("describes hourly on a minute", () => {
|
|
expect(describeCron("5 * * * *")).toBe("Every hour at :05");
|
|
});
|
|
|
|
it("returns null for empty or unparseable input", () => {
|
|
expect(describeCron("")).toBeNull();
|
|
expect(describeCron(undefined)).toBeNull();
|
|
expect(describeCron("not a cron")).toBeNull();
|
|
expect(describeCron("1 2 3")).toBeNull();
|
|
});
|
|
});
|