Files
boss/tests/master-agent-task-wakeup.test.ts
2026-05-17 02:20:08 +08:00

35 lines
1.1 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import { publishBossEvent } from "../src/lib/boss-events.ts";
import { waitForMasterAgentTaskWakeup } from "../src/lib/master-agent-task-wakeup.ts";
test("waitForMasterAgentTaskWakeup resolves when a queued task event targets the device", async () => {
const startedAt = Date.now();
const waiting = waitForMasterAgentTaskWakeup("macbook-air", 1_000);
setTimeout(() => {
publishBossEvent("master_agent.task.updated", {
deviceId: "mac-studio",
taskId: "task-other-device",
status: "queued",
});
publishBossEvent("master_agent.task.updated", {
deviceId: "macbook-air",
taskId: "task-macbook-air",
status: "queued",
});
}, 20);
assert.equal(await waiting, true);
assert.ok(Date.now() - startedAt < 500);
});
test("waitForMasterAgentTaskWakeup times out when no matching device task arrives", async () => {
const startedAt = Date.now();
const woke = await waitForMasterAgentTaskWakeup("macbook-air", 30);
assert.equal(woke, false);
assert.ok(Date.now() - startedAt >= 20);
});