import { test } from "node:test"; import assert from "node:assert/strict"; import { agentNamesFrom, agentOptionsFor, } from "../src/pages/schedules/agent-options.ts"; test("agentNamesFrom: sorted names, empty before the roster loads", () => { assert.deepEqual(agentNamesFrom([{ name: "b" }, { name: "a" }]), ["a", "b"]); assert.deepEqual(agentNamesFrom(null), []); }); test("agentOptionsFor: roster names alone for a new schedule", () => { assert.deepEqual(agentOptionsFor(["b", "a"]), ["a", "b"]); }); test("agentOptionsFor: keeps an agent that left the roster, once", () => { assert.deepEqual(agentOptionsFor(["a", "b"], { agents: ["b", "gone"] }), [ "a", "b", "gone", ]); }); test("agentOptionsFor: an empty roster still offers the schedule's agents", () => { assert.deepEqual(agentOptionsFor([], { agents: ["x"] }), ["x"]); });