Harden live camera viewer sync rendering
这个提交包含在:
@@ -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,
|
||||
}) => {
|
||||
|
||||
在新工单中引用
屏蔽一个用户