feat: model presentation live replay status

This commit is contained in:
lda
2026-07-09 15:49:31 +07:00 Verified
parent b9bf5bac60
commit b66b6e9847
2 changed files with 116 additions and 0 deletions
@@ -0,0 +1,49 @@
import { describe, expect, it } from "vitest";
import { presentationTargetHealth } from "./presentation-target-status.js";
describe("presentationTargetHealth", () => {
it("shows replay evidence when no target exists", () => {
expect(presentationTargetHealth({
target: null,
probe: "none",
liveActive: false,
})).toMatchObject({
kind: "replay",
label: "Replay evidence",
});
});
it("separates ready target from active live run", () => {
expect(presentationTargetHealth({
target: "http://127.0.0.1:8765/rpc",
probe: "ready",
liveActive: false,
})).toMatchObject({
kind: "ready",
label: "Live target ready",
});
});
it("marks live active only after live timeline starts", () => {
expect(presentationTargetHealth({
target: "http://127.0.0.1:8765/rpc",
probe: "ready",
liveActive: true,
})).toMatchObject({
kind: "active",
label: "Live run active",
});
});
it("shows replay fallback on failed health", () => {
expect(presentationTargetHealth({
target: "http://127.0.0.1:8765/rpc",
probe: "failed",
liveActive: false,
failureReason: "connection refused",
})).toMatchObject({
kind: "failed",
label: "Replay fallback",
});
});
});