1import { describe, expect, it } from "vite-plus/test";
2
3import { queuedRunsInDeliveryOrder } from "./QueuedRunOrder.ts";
4
5describe("queued run delivery order", () => {
6 it("keeps automatic completion delivery ahead of visible queued messages", () => {
7 const projection = {
8 messages: [
9 { id: "message:visible-first" },
10 {
11 id: "message:automatic",
12 delegatedCompletion: {
13 generation: 1,
14 parentRunId: "run:parent",
15 taskIds: ["task:child"],
16 },
17 },
18 { id: "message:visible-second" },
19 ],
20 runs: [
21 {
22 id: "run:visible-first",
23 ordinal: 2,
24 queuePosition: 1,
25 status: "queued",
26 userMessageId: "message:visible-first",
27 },
28 {
29 id: "run:automatic",
30 ordinal: 4,
31 queuePosition: 3,
32 status: "queued",
33 userMessageId: "message:automatic",
34 },
35 {
36 id: "run:visible-second",
37 ordinal: 3,
38 queuePosition: 2,
39 status: "queued",
40 userMessageId: "message:visible-second",
41 },
42 ],
43 } as never;
44
45 expect(queuedRunsInDeliveryOrder(projection).map((run) => run.id)).toEqual([
46 "run:automatic",
47 "run:visible-first",
48 "run:visible-second",
49 ]);
50 });
51});