fix(k1): harden live handoff and camera recovery
This commit is contained in:
@@ -72,6 +72,7 @@ let transportRefEquivalenceKey;
|
||||
let shouldRevealProvisioningNetworkStep;
|
||||
let retiredPhysicalReopenAuthority;
|
||||
let SnapshotRuntimeActionArbiter;
|
||||
let runtimeActionResponseAlreadyAccepted;
|
||||
let connectionActionAuthoritySnapshot;
|
||||
let exactAppliedNetworkIntentCompleted;
|
||||
let selectMonotonicXgridsState;
|
||||
@@ -106,6 +107,7 @@ before(async () => {
|
||||
SnapshotRuntimeActionArbiter,
|
||||
connectionActionAuthoritySnapshot,
|
||||
exactAppliedNetworkIntentCompleted,
|
||||
runtimeActionResponseAlreadyAccepted,
|
||||
} = await server.ssrLoadModule(
|
||||
"@xgrids-k1/frontend/useXgridsK1Runtime.ts",
|
||||
));
|
||||
@@ -2026,6 +2028,27 @@ test("K1 runtime replacement retires A and isolates a new B action from late set
|
||||
assert.equal(pendingAction, null);
|
||||
});
|
||||
|
||||
test("successful action response may be superseded only by the same runtime revision", () => {
|
||||
const response = {
|
||||
snapshot_runtime_id: "runtime-a",
|
||||
snapshot_revision: 41,
|
||||
};
|
||||
|
||||
assert.equal(runtimeActionResponseAlreadyAccepted(response, {
|
||||
snapshot_runtime_id: "runtime-a",
|
||||
snapshot_revision: 42,
|
||||
}), true);
|
||||
assert.equal(runtimeActionResponseAlreadyAccepted(response, {
|
||||
snapshot_runtime_id: "runtime-a",
|
||||
snapshot_revision: 40,
|
||||
}), false);
|
||||
assert.equal(runtimeActionResponseAlreadyAccepted(response, {
|
||||
snapshot_runtime_id: "runtime-b",
|
||||
snapshot_revision: 99,
|
||||
}), false);
|
||||
assert.equal(runtimeActionResponseAlreadyAccepted(response, null), false);
|
||||
});
|
||||
|
||||
test("explicit scenario reset B supersedes pending callback A in one runtime", () => {
|
||||
const arbiter = new SnapshotRuntimeActionArbiter();
|
||||
const actionA = arbiter.begin(12);
|
||||
|
||||
Reference in New Issue
Block a user