fix(k1): harden live handoff and camera recovery
This commit is contained in:
@@ -16,6 +16,7 @@ let cameraTransportRecoveryIsCurrent;
|
||||
let cameraTransportCanOpen;
|
||||
let cameraPendingQueueCanAccept;
|
||||
let cameraTransportCloseRecoveryMessage;
|
||||
let cameraPlaybackRecoveryFailureStage;
|
||||
let createCameraStartupWatchdog;
|
||||
let cameraStartupWatchdogRecoveryMessage;
|
||||
let CAMERA_FIRST_MEDIA_TIMEOUT_MS;
|
||||
@@ -69,6 +70,7 @@ before(async () => {
|
||||
cameraTransportCanOpen,
|
||||
cameraPendingQueueCanAccept,
|
||||
cameraTransportCloseRecoveryMessage,
|
||||
cameraPlaybackRecoveryFailureStage,
|
||||
createCameraStartupWatchdog,
|
||||
cameraStartupWatchdogRecoveryMessage,
|
||||
CAMERA_FIRST_MEDIA_TIMEOUT_MS,
|
||||
@@ -1297,6 +1299,25 @@ test("server slow-reader close is an automatic browser-only camera recovery", ()
|
||||
assert.match(cameraTransportCloseRecoveryMessage(1_011), /восстанавливаем/);
|
||||
});
|
||||
|
||||
test("camera transport recovery events keep exact diagnostic causes", () => {
|
||||
assert.equal(
|
||||
cameraPlaybackRecoveryFailureStage({ type: "heartbeat" }),
|
||||
"camera-heartbeat-reopen",
|
||||
);
|
||||
assert.equal(
|
||||
cameraPlaybackRecoveryFailureStage({ type: "document-visible" }),
|
||||
"camera-visibility-reopen",
|
||||
);
|
||||
assert.equal(
|
||||
cameraPlaybackRecoveryFailureStage({ type: "network-online" }),
|
||||
"camera-network-online-reopen",
|
||||
);
|
||||
assert.equal(
|
||||
cameraPlaybackRecoveryFailureStage({ type: "page-restore", persisted: true }),
|
||||
"camera-page-restore-reopen",
|
||||
);
|
||||
});
|
||||
|
||||
test("a laptop sleep gap reopens only the exact authoritative live camera transport", () => {
|
||||
const source = xgridsK1ObservationSources(
|
||||
cameraStreamingState("sensor.camera.right"),
|
||||
|
||||
Reference in New Issue
Block a user