milestone 33: contract closure — samples, file-authority enumeration, dead code, bundle ceiling
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import type { Provenance, QueryRow } from "@/lib/types";
|
||||
|
||||
/**
|
||||
* Fixture builders for the provenance shapes, shared by the query-log, detail
|
||||
* and live-stream tests the way `features/activity/fakeEventSource.ts` is shared.
|
||||
*
|
||||
* The defaults describe the dullest possible query — an allowed name nothing
|
||||
* matched, answered upstream — so each test states only the fields it is about.
|
||||
*/
|
||||
type Sections = {
|
||||
[K in keyof Provenance]?: Partial<Provenance[K]>;
|
||||
};
|
||||
|
||||
export function provenance(sections: Sections = {}): Provenance {
|
||||
return {
|
||||
request: {
|
||||
time: 1_700_000_000,
|
||||
domain: "example.com",
|
||||
client: "192.0.2.10",
|
||||
qtype: 1,
|
||||
qclass: 1,
|
||||
...sections.request,
|
||||
},
|
||||
group: { id: 1, name: "default", ...sections.group },
|
||||
policy: {
|
||||
action: "allow",
|
||||
reason: "no_match",
|
||||
matched: "",
|
||||
source_id: null,
|
||||
source_name: "",
|
||||
...sections.policy,
|
||||
},
|
||||
rewrites: { cname_target: "", safe_search_target: "", ...sections.rewrites },
|
||||
route: { kind: "upstream", forward_zone: "", upstream: "https://dns.example/dns-query", ...sections.route },
|
||||
response: { rcode: 0, duration_us: 1234, ...sections.response },
|
||||
};
|
||||
}
|
||||
|
||||
/** The flat stored row of the same dull query. */
|
||||
export function queryRow(id: number, overrides: Partial<QueryRow> = {}): QueryRow {
|
||||
return {
|
||||
id,
|
||||
ts: 1_700_000_000,
|
||||
domain: "example.com",
|
||||
client_ip: "192.0.2.10",
|
||||
qtype: 1,
|
||||
qclass: 1,
|
||||
rcode: 0,
|
||||
blocked: false,
|
||||
response_time_us: 1234,
|
||||
cache_hit: false,
|
||||
upstream: "https://dns.example/dns-query",
|
||||
policy_action: "allow",
|
||||
policy_reason: "no_match",
|
||||
route_kind: "upstream",
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user