feat: 添加既有会话刷新验证命令
This commit is contained in:
@@ -172,6 +172,30 @@ test("realtime fanout validates YAML-owned refresh and legacy live-only connecte
|
||||
}, sessionId, "live", liveProfile));
|
||||
});
|
||||
|
||||
test("existing session refresh rejects duplicate or reordered Workbench identities", () => {
|
||||
const source = nodeWebObserveRunnerRealtimeSource();
|
||||
const build = new Function(`${source}\nreturn realtimeAssertSameWorkbenchDom;`) as () => (
|
||||
before: Record<string, unknown>, after: Record<string, unknown>,
|
||||
) => void;
|
||||
const assertSame = build();
|
||||
const before = { messageCount: 2, identities: ["user:m1:", "agent:m2:t1"], missingIdentityRows: [], duplicateIdentities: [] };
|
||||
assert.doesNotThrow(() => assertSame(before, { ...before }));
|
||||
assert.throws(() => assertSame(before, { ...before, identities: [...before.identities].reverse() }), /identity or order changed/u);
|
||||
assert.throws(() => assertSame(before, { ...before, duplicateIdentities: ["agent:m2:t1"] }), /duplicate message identities/u);
|
||||
assert.throws(() => assertSame(before, { ...before, missingIdentityRows: [1] }), /without a stable message identity/u);
|
||||
});
|
||||
|
||||
test("existing session refresh failures preserve typed phase and code", () => {
|
||||
const source = nodeWebObserveRunnerRealtimeSource();
|
||||
const build = new Function(`function errorSummary(error) { return { message: error.message }; }\n${source}\nreturn realtimeExistingRefreshFailure;`) as () => (
|
||||
phase: string, error: Error,
|
||||
) => Record<string, unknown>;
|
||||
const failure = build()("retention-barrier", new Error("connected evidence timed out"));
|
||||
assert.equal(failure.phase, "retention-barrier");
|
||||
assert.equal(failure.code, "retention_barrier_failed");
|
||||
assert.deepEqual(failure.valuesRedacted, true);
|
||||
});
|
||||
|
||||
test("realtime fanout proves one formal user event through AgentRun, HWLAB Kafka, and product SSE", () => {
|
||||
const source = nodeWebObserveRunnerRealtimeSource();
|
||||
const build = new Function(`${source}\nreturn realtimeValidateTurnEvidence;`) as () => (input: Record<string, unknown>) => void;
|
||||
|
||||
Reference in New Issue
Block a user