Admit unknowns before canonical construction and provenance interning. Offer independent per-file and application capacities through CLI, Evidence and the owned analysis worker, and reject over-allocation during streamed decoding. Report examined omitted emission occurrences by family and reason without retaining discarded identities. Preserve omission-free graph identities and distinguish node truncation from overall partial coverage. Fixes #4797
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
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,
|
|
max_semantic_unknowns: 500_000,
|
|
max_semantic_unknowns_per_file: 400_000,
|
|
}),
|
|
).toEqual({
|
|
max_semantic_nodes: 750_000,
|
|
max_semantic_nodes_per_file: 700_000,
|
|
max_semantic_unknowns: 500_000,
|
|
max_semantic_unknowns_per_file: 400_000,
|
|
});
|
|
for (const value of [0, -1, 1.5, 1_000_001, Infinity, NaN]) {
|
|
for (const key of [
|
|
"max_semantic_nodes",
|
|
"max_semantic_nodes_per_file",
|
|
"max_semantic_unknowns",
|
|
"max_semantic_unknowns_per_file",
|
|
])
|
|
expect(
|
|
javaScriptAnalysisResourceControlsSchema.safeParse({ [key]: value })
|
|
.success,
|
|
).toBe(false);
|
|
}
|
|
});
|