* feat(native): add UI and dispatch investigation workflows * feat(ghidra): support macOS host validation * docs: update native investigation capabilities * feat(artifacts): decode compiled Interface Builder archives * feat(ghidra): expose bounded p-code value flow * test(ghidra): split host and cross-format verification * fix(verify): follow complete result contracts * refactor: remove unused authorization and schema helpers * refactor: remove unused evidence result alias * fix(ghidra): report jump-table evidence precisely * fix(verify): align browser scenario fixture schema * fix(setup): compare parsed client config structurally * test(ghidra): verify AArch64 jump-table mappings * fix(ghidra): recover AArch64 byte jump tables * test(artifacts): verify compiled interface builder archives * feat(native): trace UI actions through handlers * fix(tests): update native trace and shutdown fixtures * fix(verification): diagnose browser scenario failures * fix(browser): wrap scenario snapshots in capture state * fix(native): bind and bound investigation workflows * fix(artifacts): preserve bounded interface builder evidence * fix(ghidra): enforce admitted hosts and preflight tools * fix(native): preserve trace cancellation and bounds * test(application): expect bound analysis target evidence * fix(native): preserve investigation bounds and cancellation * fix(application): preserve bundle and unresolved trace evidence * style(test): format artifact subject fixture
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { clientConfigurationValuesEqual } from "./ClientConfigurationDocument.js";
|
|
|
|
describe("client configuration comparison", () => {
|
|
it("ignores TOML parser object prototypes and key order", () => {
|
|
const parsedEnvironment = {
|
|
HOPPER_LAUNCHER_PATH: "/opt/rea/node",
|
|
};
|
|
const parsedRegistration = {
|
|
env: parsedEnvironment,
|
|
startup_timeout_sec: 30,
|
|
args: ["mcp"],
|
|
command: "/opt/rea/bin/rea",
|
|
};
|
|
Object.setPrototypeOf(parsedEnvironment, null);
|
|
Object.setPrototypeOf(parsedRegistration, null);
|
|
|
|
expect(
|
|
clientConfigurationValuesEqual(parsedRegistration, {
|
|
command: "/opt/rea/bin/rea",
|
|
args: ["mcp"],
|
|
startup_timeout_sec: 30,
|
|
env: { HOPPER_LAUNCHER_PATH: "/opt/rea/node" },
|
|
}),
|
|
).toBe(true);
|
|
});
|
|
|
|
it("still detects configuration value changes", () => {
|
|
expect(
|
|
clientConfigurationValuesEqual(
|
|
{ startup_timeout_sec: 30 },
|
|
{ startup_timeout_sec: 15 },
|
|
),
|
|
).toBe(false);
|
|
});
|
|
});
|