2026-10-12 09:28:59 +08:00
|
|
|
import { expect, it } from "vitest";
|
|
|
|
|
import { javaScriptAnalysisResourceControlsSchema } from "./javascriptAnalysisResourceControls.js";
|
|
|
|
|
|
|
|
|
|
it("keeps omitted operational choices absent and validates explicit semantic budgets", () => {
|
|
|
|
|
expect(javaScriptAnalysisResourceControlsSchema.parse({})).toEqual({});
|
|
|
|
|
expect(
|
|
|
|
|
javaScriptAnalysisResourceControlsSchema.parse({
|
|
|
|
|
max_semantic_nodes: 750_000,
|
|
|
|
|
max_semantic_nodes_per_file: 700_000,
|
2026-10-17 21:57:31 +08:00
|
|
|
max_semantic_unknowns: 500_000,
|
|
|
|
|
max_semantic_unknowns_per_file: 400_000,
|
2026-10-12 09:28:59 +08:00
|
|
|
}),
|
|
|
|
|
).toEqual({
|
|
|
|
|
max_semantic_nodes: 750_000,
|
|
|
|
|
max_semantic_nodes_per_file: 700_000,
|
2026-10-17 21:57:31 +08:00
|
|
|
max_semantic_unknowns: 500_000,
|
|
|
|
|
max_semantic_unknowns_per_file: 400_000,
|
2026-10-12 09:28:59 +08:00
|
|
|
});
|
|
|
|
|
for (const value of [0, -1, 1.5, 1_000_001, Infinity, NaN]) {
|
2026-10-17 21:57:31 +08:00
|
|
|
for (const key of [
|
|
|
|
|
"max_semantic_nodes",
|
|
|
|
|
"max_semantic_nodes_per_file",
|
|
|
|
|
"max_semantic_unknowns",
|
|
|
|
|
"max_semantic_unknowns_per_file",
|
|
|
|
|
])
|
2026-10-12 09:28:59 +08:00
|
|
|
expect(
|
|
|
|
|
javaScriptAnalysisResourceControlsSchema.safeParse({ [key]: value })
|
|
|
|
|
.success,
|
|
|
|
|
).toBe(false);
|
|
|
|
|
}
|
|
|
|
|
});
|