36 lines
1023 B
TypeScript
36 lines
1023 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import {
|
|
PipelineConfigSchema,
|
|
createDateRange,
|
|
formatDateRange,
|
|
isTimestampInRange,
|
|
PageRangeSpecSchema,
|
|
PageRangeSchema,
|
|
schemaToJSON,
|
|
} from "./schema";
|
|
|
|
describe("schema helpers", () => {
|
|
it("creates date range from spec", () => {
|
|
const range = createDateRange("2024-01-01:2024-01-31");
|
|
expect(range.start).toBeLessThan(range.end);
|
|
expect(formatDateRange(range)).toBe("2024-01-01:2024-01-31");
|
|
});
|
|
|
|
it("checks membership", () => {
|
|
const range = createDateRange("2024-01-01:2024-01-02");
|
|
expect(isTimestampInRange(range, range.start)).toBe(true);
|
|
expect(isTimestampInRange(range, range.start - 1)).toBe(false);
|
|
});
|
|
|
|
it("parses page range spec", () => {
|
|
const range = PageRangeSchema.parse(PageRangeSpecSchema.parse("1:10"));
|
|
expect(range).toEqual({ start: 1, end: 10 });
|
|
});
|
|
|
|
it("produces json schema", () => {
|
|
const json = schemaToJSON(PipelineConfigSchema);
|
|
expect(json.type).toBe("object");
|
|
});
|
|
});
|