Tighten rejection tests to their expected errors
Every assert.throws now names the error it expects, so a broken fixture or an unrelated failure can no longer satisfy a rejection test. Zod rejections are matched by issue path and code via tests/support/zod-assertions.ts. Restore snapshot coverage lost with the release baseline: invalid board floor, room floor and circuit section references and a reserve state that contradicts the device rows are rejected again under test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
cc4eefcb86
commit
a8cc7eca5e
8 changed files with 269 additions and 122 deletions
|
|
@ -74,20 +74,22 @@ describe("serialized project commands", () => {
|
|||
});
|
||||
|
||||
it("rejects values that JSON would lose or silently change", () => {
|
||||
const invalidPayloads: unknown[] = [
|
||||
{ value: undefined },
|
||||
{ value: Number.NaN },
|
||||
{ value: Number.POSITIVE_INFINITY },
|
||||
{ value: new Date() },
|
||||
const invalidPayloads: Array<[unknown, RegExp]> = [
|
||||
[{ value: undefined }, /must contain JSON values only/],
|
||||
[{ value: Number.NaN }, /numbers must be finite/],
|
||||
[{ value: Number.POSITIVE_INFINITY }, /numbers must be finite/],
|
||||
[{ value: new Date() }, /must contain plain objects only/],
|
||||
];
|
||||
|
||||
for (const payload of invalidPayloads) {
|
||||
assert.throws(() =>
|
||||
serializeProjectCommand({
|
||||
schemaVersion: 1,
|
||||
type: "test.invalid",
|
||||
payload: payload as never,
|
||||
})
|
||||
for (const [payload, expectedError] of invalidPayloads) {
|
||||
assert.throws(
|
||||
() =>
|
||||
serializeProjectCommand({
|
||||
schemaVersion: 1,
|
||||
type: "test.invalid",
|
||||
payload: payload as never,
|
||||
}),
|
||||
expectedError
|
||||
);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue