diff options
| author | Adam Malczewski <[email protected]> | 2026-06-26 22:03:19 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-26 22:23:39 +0900 |
| commit | 727c98c9dae516a2070eb950410314380a20c974 (patch) | |
| tree | 52aa1022c54f11770be7e4e2a324f0a8b8b8deec /packages/message-queue/src/service.test.ts | |
| parent | e59dc11f63b1df51142259bb2c406af8c9c8c2bb (diff) | |
| download | dispatch-727c98c9dae516a2070eb950410314380a20c974.tar.gz dispatch-727c98c9dae516a2070eb950410314380a20c974.zip | |
style: switch from tabs to 2-space indentation
Diffstat (limited to 'packages/message-queue/src/service.test.ts')
| -rw-r--r-- | packages/message-queue/src/service.test.ts | 148 |
1 files changed, 74 insertions, 74 deletions
diff --git a/packages/message-queue/src/service.test.ts b/packages/message-queue/src/service.test.ts index 04cde91..aa59dd3 100644 --- a/packages/message-queue/src/service.test.ts +++ b/packages/message-queue/src/service.test.ts @@ -5,97 +5,97 @@ import { buildQueueSpec, combine } from "./pure.js"; import { createMessageQueueService, type MessageQueueDeps } from "./service.js"; interface Recorder extends MessageQueueDeps { - readonly calls: { value: number }; + readonly calls: { value: number }; } function makeDeps(): Recorder { - let idCounter = 0; - let now = 1_000; - const calls = { value: 0 }; - return { - id: () => `q-${++idCounter}`, - now: () => (now += 10), - notify: () => { - calls.value += 1; - }, - calls, - }; + let idCounter = 0; + let now = 1_000; + const calls = { value: 0 }; + return { + id: () => `q-${++idCounter}`, + now: () => (now += 10), + notify: () => { + calls.value += 1; + }, + calls, + }; } function queueMessages(spec: SurfaceSpec): readonly QueuedMessage[] { - const field = spec.fields[0]; - if (field === undefined || field.kind !== "custom") { - throw new Error("expected a custom field"); - } - return (field.payload as QueuePayload).messages; + const field = spec.fields[0]; + if (field === undefined || field.kind !== "custom") { + throw new Error("expected a custom field"); + } + return (field.payload as QueuePayload).messages; } describe("message-queue service", () => { - it("enqueue pushes a surface update (snapshot grew)", () => { - const deps = makeDeps(); - const svc = createMessageQueueService(deps); - expect(deps.calls.value).toBe(0); + it("enqueue pushes a surface update (snapshot grew)", () => { + const deps = makeDeps(); + const svc = createMessageQueueService(deps); + expect(deps.calls.value).toBe(0); - const snapshot = svc.enqueue("c1", "hello"); - expect(deps.calls.value).toBe(1); // surface update pushed - expect(snapshot).toHaveLength(1); - const first = snapshot[0]; - if (first === undefined) throw new Error("expected a message"); - expect(first.text).toBe("hello"); - expect(typeof first.id).toBe("string"); - expect(first.queuedAt).toBe(1_010); + const snapshot = svc.enqueue("c1", "hello"); + expect(deps.calls.value).toBe(1); // surface update pushed + expect(snapshot).toHaveLength(1); + const first = snapshot[0]; + if (first === undefined) throw new Error("expected a message"); + expect(first.text).toBe("hello"); + expect(typeof first.id).toBe("string"); + expect(first.queuedAt).toBe(1_010); - // the surface spec reflects the grown snapshot - expect(queueMessages(buildQueueSpec(svc.getQueue("c1")))).toHaveLength(1); - }); + // the surface spec reflects the grown snapshot + expect(queueMessages(buildQueueSpec(svc.getQueue("c1")))).toHaveLength(1); + }); - it("drain pushes a surface update (empty)", () => { - const deps = makeDeps(); - const svc = createMessageQueueService(deps); - svc.enqueue("c1", "a"); - svc.enqueue("c1", "b"); - expect(deps.calls.value).toBe(2); // two enqueues notified + it("drain pushes a surface update (empty)", () => { + const deps = makeDeps(); + const svc = createMessageQueueService(deps); + svc.enqueue("c1", "a"); + svc.enqueue("c1", "b"); + expect(deps.calls.value).toBe(2); // two enqueues notified - const drained = svc.drain("c1"); - expect(deps.calls.value).toBe(3); // drain pushed a surface update - expect(drained).toHaveLength(2); - expect(drained.map((m) => m.text)).toEqual(["a", "b"]); + const drained = svc.drain("c1"); + expect(deps.calls.value).toBe(3); // drain pushed a surface update + expect(drained).toHaveLength(2); + expect(drained.map((m) => m.text)).toEqual(["a", "b"]); - // cleared + surface now shows empty - expect(svc.getQueue("c1")).toEqual([]); - expect(queueMessages(buildQueueSpec(svc.getQueue("c1")))).toEqual([]); - }); + // cleared + surface now shows empty + expect(svc.getQueue("c1")).toEqual([]); + expect(queueMessages(buildQueueSpec(svc.getQueue("c1")))).toEqual([]); + }); - it("drain on empty does NOT push a surface update (already empty)", () => { - const deps = makeDeps(); - const svc = createMessageQueueService(deps); + it("drain on empty does NOT push a surface update (already empty)", () => { + const deps = makeDeps(); + const svc = createMessageQueueService(deps); - expect(svc.drain("c1")).toEqual([]); - expect(deps.calls.value).toBe(0); // no notify — no change + expect(svc.drain("c1")).toEqual([]); + expect(deps.calls.value).toBe(0); // no notify — no change - // after a real drain empties it, a further drain is a no-op (no notify) - svc.enqueue("c1", "x"); - expect(deps.calls.value).toBe(1); - svc.drain("c1"); - expect(deps.calls.value).toBe(2); - svc.drain("c1"); - expect(deps.calls.value).toBe(2); // unchanged — queue was already empty - }); + // after a real drain empties it, a further drain is a no-op (no notify) + svc.enqueue("c1", "x"); + expect(deps.calls.value).toBe(1); + svc.drain("c1"); + expect(deps.calls.value).toBe(2); + svc.drain("c1"); + expect(deps.calls.value).toBe(2); // unchanged — queue was already empty + }); - it("getQueue returns current snapshot; empty for unknown conversation", () => { - const deps = makeDeps(); - const svc = createMessageQueueService(deps); - expect(svc.getQueue("nope")).toEqual([]); - svc.enqueue("c1", "hi"); - expect(svc.getQueue("c1")).toHaveLength(1); - }); + it("getQueue returns current snapshot; empty for unknown conversation", () => { + const deps = makeDeps(); + const svc = createMessageQueueService(deps); + expect(svc.getQueue("nope")).toEqual([]); + svc.enqueue("c1", "hi"); + expect(svc.getQueue("c1")).toHaveLength(1); + }); - it("drain returns the raw QueuedMessage[] the orchestrator combines", () => { - const deps = makeDeps(); - const svc = createMessageQueueService(deps); - svc.enqueue("c1", "alpha"); - svc.enqueue("c1", "beta"); - const drained = svc.drain("c1"); - expect(combine(drained)).toBe("alpha\n\nbeta"); - }); + it("drain returns the raw QueuedMessage[] the orchestrator combines", () => { + const deps = makeDeps(); + const svc = createMessageQueueService(deps); + svc.enqueue("c1", "alpha"); + svc.enqueue("c1", "beta"); + const drained = svc.drain("c1"); + expect(combine(drained)).toBe("alpha\n\nbeta"); + }); }); |
