Harden live camera viewer sync rendering

这个提交包含在:
cryptocommuniums-afk
2026-03-17 14:15:14 +08:00
父节点 597f16d0b9
当前提交 902bd783c9
修改 5 个文件,包含 195 行新增16 行删除

查看文件

@@ -88,12 +88,54 @@ test("live camera switches into viewer mode when another device already owns ana
await expect(page.getByTestId("live-camera-viewer-sync-card")).toContainText(
"均衡模式"
);
await expect(page.getByTestId("live-camera-viewer-sync-card")).toContainText(
"已累积"
);
await expect(page.getByTestId("live-camera-viewer-sync-card")).toContainText(
"猩猩"
);
await expect(page.getByTestId("live-camera-score-overall")).toBeVisible();
});
test("live camera viewer tolerates legacy segments and shows remaining buffer hint", async ({
page,
}) => {
const state = await installAppMocks(page, {
authenticated: true,
liveViewerMode: true,
});
if (state.liveRuntime.runtimeSession?.snapshot) {
state.liveRuntime.runtimeSession.snapshot.recentSegments = [
{
actionType: "forehand",
isUnknown: false,
startMs: 1200,
endMs: 3600,
durationMs: 2400,
confidenceAvg: 0.82,
score: 81,
peakScore: 86,
frameCount: 18,
} as any,
];
}
if (state.mediaSession) {
state.mediaSession.durationMs = 4_000;
state.mediaSession.playback.previewUrl = undefined;
}
await page.goto("/live-camera");
await expect(page.getByText("同步观看模式")).toBeVisible();
await expect(
page
.getByTestId("live-camera-viewer-sync-card")
.getByText(/预计还需 6 秒 才会出现首段可观看回放/)
).toBeVisible();
await expect(page.getByText("关键帧 0")).toBeVisible();
});
test("live camera recovers mojibake viewer titles before rendering", async ({
page,
}) => {