39 lines
1008 B
TypeScript
39 lines
1008 B
TypeScript
import assert from "node:assert/strict";
|
|
import { describe, it } from "node:test";
|
|
import { listProjectRevisionsQuerySchema } from "../src/shared/validation/project-history.schemas.js";
|
|
|
|
describe("project revision timeline query", () => {
|
|
it("applies a bounded default page size", () => {
|
|
assert.deepEqual(
|
|
listProjectRevisionsQuerySchema.parse({}),
|
|
{ limit: 25 }
|
|
);
|
|
assert.deepEqual(
|
|
listProjectRevisionsQuerySchema.parse({
|
|
limit: "100",
|
|
beforeRevision: "42",
|
|
}),
|
|
{
|
|
limit: 100,
|
|
beforeRevision: 42,
|
|
}
|
|
);
|
|
});
|
|
|
|
it("rejects invalid cursors, page sizes and unknown query fields", () => {
|
|
for (const query of [
|
|
{ limit: "0" },
|
|
{ limit: "101" },
|
|
{ limit: "1.5" },
|
|
{ beforeRevision: "0" },
|
|
{ beforeRevision: "not-a-number" },
|
|
{ unexpected: "value" },
|
|
]) {
|
|
assert.equal(
|
|
listProjectRevisionsQuerySchema.safeParse(query).success,
|
|
false
|
|
);
|
|
}
|
|
});
|
|
});
|