forked from jappel/leistungsbilanz-ts
Add Revit CSV preview API
This commit is contained in:
parent
219da5ec3b
commit
caa6caf99f
14 changed files with 437 additions and 3 deletions
52
tests/external-csv-api-contract.test.ts
Normal file
52
tests/external-csv-api-contract.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import assert from "node:assert/strict";
|
||||
import { describe, it } from "node:test";
|
||||
import {
|
||||
previewExternalCsvSchema,
|
||||
updateExternalCsvConfigurationSchema,
|
||||
} from "../src/shared/validation/external-csv.schemas.js";
|
||||
import { createDefaultExternalCsvConfiguration } from "../src/external-model/csv/external-csv-contracts.js";
|
||||
import { externalCsvTestColumns } from "./fixtures/revit-csv-fixtures.js";
|
||||
|
||||
describe("external CSV API contracts", () => {
|
||||
it("accepts strict update and preview request envelopes", () => {
|
||||
assert.equal(
|
||||
updateExternalCsvConfigurationSchema.safeParse({
|
||||
expectedRevision: 4,
|
||||
configuration: createDefaultExternalCsvConfiguration(externalCsvTestColumns),
|
||||
}).success,
|
||||
true
|
||||
);
|
||||
assert.equal(
|
||||
previewExternalCsvSchema.safeParse({
|
||||
fileName: "revit.csv",
|
||||
contentBase64: "YWJj",
|
||||
}).success,
|
||||
true
|
||||
);
|
||||
});
|
||||
|
||||
it("rejects stale-shaped, oversized and unknown request fields", () => {
|
||||
assert.equal(
|
||||
updateExternalCsvConfigurationSchema.safeParse({
|
||||
expectedRevision: -1,
|
||||
configuration: {},
|
||||
}).success,
|
||||
false
|
||||
);
|
||||
assert.equal(
|
||||
previewExternalCsvSchema.safeParse({
|
||||
fileName: "revit.csv",
|
||||
contentBase64: "YWJj",
|
||||
apply: true,
|
||||
}).success,
|
||||
false
|
||||
);
|
||||
assert.equal(
|
||||
previewExternalCsvSchema.safeParse({
|
||||
fileName: "revit.csv",
|
||||
contentBase64: "a".repeat(24_000_001),
|
||||
}).success,
|
||||
false
|
||||
);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue