|
1 | 1 | import { describe, expect, it } from "vitest"; |
2 | 2 | import { |
| 3 | + baseWorkerQueue, |
3 | 4 | resolveScheduledQueueSplitEnabled, |
4 | 5 | workerQueueForRun, |
5 | 6 | workerQueueForClass, |
@@ -98,6 +99,42 @@ describe("workerQueueForRun", () => { |
98 | 99 | }); |
99 | 100 | }); |
100 | 101 |
|
| 102 | +describe("baseWorkerQueue", () => { |
| 103 | + const region = "us-nyc-3"; |
| 104 | + const scheduled = `${region}${SCHEDULED_WORKER_QUEUE_SUFFIX}`; |
| 105 | + |
| 106 | + it("strips the scheduled split suffix back to the base region", () => { |
| 107 | + expect(baseWorkerQueue(scheduled)).toBe(region); |
| 108 | + }); |
| 109 | + |
| 110 | + it("leaves a base region untouched (idempotent)", () => { |
| 111 | + expect(baseWorkerQueue(region)).toBe(region); |
| 112 | + expect(baseWorkerQueue(baseWorkerQueue(scheduled))).toBe(region); |
| 113 | + }); |
| 114 | + |
| 115 | + it("strips any future `:<class>` suffix, not just `:scheduled`", () => { |
| 116 | + expect(baseWorkerQueue("us-nyc-3:priority")).toBe(region); |
| 117 | + expect(baseWorkerQueue("us-nyc-3:a:b")).toBe(region); |
| 118 | + }); |
| 119 | + |
| 120 | + it("handles the project-scoped masterQueue shape (`<projectId>-<name>`)", () => { |
| 121 | + expect(baseWorkerQueue("proj_abc123-main:scheduled")).toBe("proj_abc123-main"); |
| 122 | + }); |
| 123 | + |
| 124 | + it("returns an empty string unchanged", () => { |
| 125 | + expect(baseWorkerQueue("")).toBe(""); |
| 126 | + }); |
| 127 | + |
| 128 | + it("round-trips with workerQueueForRun: the split queue strips back to the region it came from", () => { |
| 129 | + const enqueued = workerQueueForRun({ |
| 130 | + workerQueue: region, |
| 131 | + rootTriggerSource: "schedule", |
| 132 | + splitEnabled: true, |
| 133 | + }); |
| 134 | + expect(baseWorkerQueue(enqueued)).toBe(region); |
| 135 | + }); |
| 136 | +}); |
| 137 | + |
101 | 138 | describe("workerQueueForClass", () => { |
102 | 139 | const region = "us-nyc-3"; |
103 | 140 | const scheduled = `${region}${SCHEDULED_WORKER_QUEUE_SUFFIX}`; |
|
0 commit comments