Files
pikasTech-HWLAB/web/hwlab-cloud-web/scripts/caserun-native-fixtures.test.ts
T

47 lines
2.1 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { listNativeCases, readNativeAggregate, readNativeEvents, readNativeRun, resetNativeFixtures, startNativeRun } from "./caserun-native-fixtures";
test("native CaseRun fixtures expose six deterministic API-owned states", () => {
resetNativeFixtures();
const cases = listNativeCases();
assert.equal(cases.mode, "native-test");
assert.deepEqual(cases.cases.map((item) => item.caseId), ["native-queued", "native-running", "native-completed", "native-failed", "native-blocked", "native-canceled"]);
const started = startNativeRun("native-completed");
assert.equal(started?.status, "queued");
assert.equal(started?.terminal, false);
const running = readNativeRun(started!.runId);
assert.equal(running?.status, "running");
assert.equal(running?.terminal, false);
const completed = readNativeRun(started!.runId);
assert.equal(completed?.status, "completed");
assert.equal(completed?.terminal, true);
assert.match(completed?.references.aggregate.sha256 ?? "", /^[a-f0-9]{64}$/);
const aggregate = readNativeAggregate(started!.runId);
assert.equal(aggregate?.mode, "native-test");
assert.equal(aggregate?.runId, started!.runId);
assert.equal(aggregate?.status, "completed");
assert.equal(aggregate?.sha256, completed?.references.aggregate.sha256);
const events = readNativeEvents(started!.runId);
assert.deepEqual(events?.events.map((event) => event.status), ["queued", "running", "completed"]);
assert.equal(events?.mode, "native-test");
});
test("native blockers and cancellation come from the API fixture", () => {
resetNativeFixtures();
const blocked = startNativeRun("native-blocked")!;
const blockedTerminal = readNativeRun(blocked.runId)!;
assert.equal(blockedTerminal.terminal, true);
assert.equal(blockedTerminal.blocker?.code, "native-capability-blocked");
const canceled = startNativeRun("native-canceled")!;
readNativeRun(canceled.runId);
const canceledTerminal = readNativeRun(canceled.runId)!;
assert.equal(canceledTerminal.status, "canceled");
assert.equal(canceledTerminal.terminal, true);
});