mirror of
https://github.com/morluto/rea.git
synced 2026-10-29 10:55:57 +00:00
feat(javascript): retain queryable static route inventories (#6019)
This commit is contained in:
1 parent
933af60eba
commit
7d0efef62d
67 files changed
+74345
-231
No files matched your search
@@ -0,0 +1,63 @@
|
||||
import { expect, it } from "vitest";
|
||||
import { analyzeJavaScriptStaticSource } from "./javascriptStaticAnalysis.js";
|
||||
import { javaScriptRouteSourceFactsSchema } from "./javascriptRouteFacts.js";
|
||||
import { fitJavaScriptRouteSourceFacts } from "./javascriptRouteResultBudget.js";
|
||||
|
||||
const facts = () =>
|
||||
analyzeJavaScriptStaticSource(
|
||||
`createBrowserRouter([{path:'/reports',children:[{path:'settings'},{path:'history'}]}]);`,
|
||||
).routes!;
|
||||
it("borrows complete source facts when the actual enclosing result has room", () => {
|
||||
const input = facts();
|
||||
expect(
|
||||
fitJavaScriptRouteSourceFacts(
|
||||
input,
|
||||
Buffer.byteLength(JSON.stringify(input)),
|
||||
),
|
||||
).toBe(input);
|
||||
});
|
||||
it("preserves a bounded prefix with exact locations and explicit result capacity", () => {
|
||||
const input = facts(),
|
||||
original = JSON.stringify(input),
|
||||
selected = fitJavaScriptRouteSourceFacts(input, 700)!;
|
||||
expect(selected.candidates.length).toBeGreaterThan(0);
|
||||
expect(selected.candidates.length).toBeLessThan(input.candidates.length);
|
||||
expect(selected.candidates).toEqual(
|
||||
input.candidates.slice(0, selected.candidates.length),
|
||||
);
|
||||
expect(selected.capacity).toEqual({
|
||||
kind: "result-bytes",
|
||||
limit_bytes: 700,
|
||||
preceding_work_capacity: null,
|
||||
});
|
||||
expect(Buffer.byteLength(JSON.stringify(selected))).toBeLessThanOrEqual(700);
|
||||
expect(JSON.stringify(input)).toBe(original);
|
||||
expect(javaScriptRouteSourceFactsSchema.safeParse(selected).success).toBe(
|
||||
true,
|
||||
);
|
||||
});
|
||||
it("preserves earlier work capacity and uncertainty when transport admission also truncates", () => {
|
||||
const input = facts();
|
||||
input.capacity = {
|
||||
kind: "route-work-or-facts",
|
||||
limit_bytes: 4096,
|
||||
accounted_fact_bytes: 2000,
|
||||
accounted_work_bytes: 2000,
|
||||
};
|
||||
input.unresolved.push({
|
||||
mechanism: "nested-route-object",
|
||||
location: input.candidates[0]!.location,
|
||||
reason: 'Unknown parent: "é💫"',
|
||||
});
|
||||
const selected = fitJavaScriptRouteSourceFacts(input, 800)!;
|
||||
expect(selected.unresolved).toEqual(input.unresolved);
|
||||
expect(selected.capacity).toMatchObject({
|
||||
kind: "result-bytes",
|
||||
preceding_work_capacity: input.capacity,
|
||||
});
|
||||
expect(Buffer.byteLength(JSON.stringify(selected))).toBeLessThanOrEqual(800);
|
||||
});
|
||||
it("omits an unmeasured facet when even its capacity envelope cannot fit", () => {
|
||||
expect(fitJavaScriptRouteSourceFacts(facts(), 0)).toBeUndefined();
|
||||
expect(fitJavaScriptRouteSourceFacts(facts(), 1)).toBeUndefined();
|
||||
});
|
||||
Reference in new issue
Block a user