-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathworkerQueueSplit.test.ts
More file actions
168 lines (144 loc) · 5.52 KB
/
Copy pathworkerQueueSplit.test.ts
File metadata and controls
168 lines (144 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
import { describe, expect, it } from "vitest";
import {
baseWorkerQueue,
resolveScheduledQueueSplitEnabled,
workerQueueForRun,
workerQueueForClass,
SCHEDULED_WORKER_QUEUE_SUFFIX,
} from "~/runEngine/concerns/workerQueueSplit.server";
import { FEATURE_FLAG } from "~/v3/featureFlags";
const FLAG = FEATURE_FLAG.workerQueueScheduledSplitEnabled;
describe("resolveScheduledQueueSplitEnabled", () => {
it("falls back to the global default when the org has no override", () => {
expect(resolveScheduledQueueSplitEnabled({ orgFeatureFlags: null, globalDefault: false })).toBe(
false
);
expect(
resolveScheduledQueueSplitEnabled({ orgFeatureFlags: undefined, globalDefault: true })
).toBe(true);
expect(resolveScheduledQueueSplitEnabled({ orgFeatureFlags: {}, globalDefault: true })).toBe(
true
);
});
it("per-org true overrides a global default of false (beta opt-in)", () => {
expect(
resolveScheduledQueueSplitEnabled({
orgFeatureFlags: { [FLAG]: true },
globalDefault: false,
})
).toBe(true);
});
it("per-org false overrides a global default of true (escape hatch)", () => {
expect(
resolveScheduledQueueSplitEnabled({
orgFeatureFlags: { [FLAG]: false },
globalDefault: true,
})
).toBe(false);
});
it("ignores unrelated org flags", () => {
expect(
resolveScheduledQueueSplitEnabled({
orgFeatureFlags: { somethingElse: true },
globalDefault: false,
})
).toBe(false);
});
it("coerces a present override to boolean (z.coerce.boolean semantics)", () => {
// The catalog type is z.coerce.boolean(), matching the mollifier flag, so any
// present value is coerced rather than rejected. The admin routes validate
// against the same catalog on write, so stored values are real JSON booleans;
// this just documents that a present override always wins over the default.
expect(
resolveScheduledQueueSplitEnabled({
orgFeatureFlags: { [FLAG]: 0 as unknown as boolean },
globalDefault: true,
})
).toBe(false);
});
});
describe("workerQueueForRun", () => {
const region = "us-nyc-3";
const scheduled = `${region}${SCHEDULED_WORKER_QUEUE_SUFFIX}`;
it("suffixes scheduled-lineage runs when the split is enabled", () => {
expect(
workerQueueForRun({ workerQueue: region, rootTriggerSource: "schedule", splitEnabled: true })
).toBe(scheduled);
});
it("leaves standard/agent runs on the base queue", () => {
for (const rootTriggerSource of ["api", "sdk", "dashboard", "cli", "mcp", undefined]) {
expect(
workerQueueForRun({ workerQueue: region, rootTriggerSource, splitEnabled: true })
).toBe(region);
}
});
it("never suffixes when the split is disabled, even for scheduled runs", () => {
expect(
workerQueueForRun({ workerQueue: region, rootTriggerSource: "schedule", splitEnabled: false })
).toBe(region);
});
it("is idempotent — does not double-suffix an already-scheduled queue", () => {
expect(
workerQueueForRun({
workerQueue: scheduled,
rootTriggerSource: "schedule",
splitEnabled: true,
})
).toBe(scheduled);
});
});
describe("baseWorkerQueue", () => {
const region = "us-nyc-3";
const scheduled = `${region}${SCHEDULED_WORKER_QUEUE_SUFFIX}`;
it("strips the scheduled split suffix back to the base region", () => {
expect(baseWorkerQueue(scheduled)).toBe(region);
});
it("leaves a base region untouched (idempotent)", () => {
expect(baseWorkerQueue(region)).toBe(region);
expect(baseWorkerQueue(baseWorkerQueue(scheduled))).toBe(region);
});
it("strips any future `:<class>` suffix, not just `:scheduled`", () => {
expect(baseWorkerQueue("us-nyc-3:priority")).toBe(region);
expect(baseWorkerQueue("us-nyc-3:a:b")).toBe(region);
});
it("handles the project-scoped masterQueue shape (`<projectId>-<name>`)", () => {
expect(baseWorkerQueue("proj_abc123-main:scheduled")).toBe("proj_abc123-main");
});
it("returns an empty string unchanged", () => {
expect(baseWorkerQueue("")).toBe("");
});
it("passes a nullish worker queue straight through (synthetic run snapshots)", () => {
expect(baseWorkerQueue(null)).toBeNull();
expect(baseWorkerQueue(undefined)).toBeUndefined();
});
it("round-trips with workerQueueForRun: the split queue strips back to the region it came from", () => {
const enqueued = workerQueueForRun({
workerQueue: region,
rootTriggerSource: "schedule",
splitEnabled: true,
});
expect(baseWorkerQueue(enqueued)).toBe(region);
});
});
describe("workerQueueForClass", () => {
const region = "us-nyc-3";
const scheduled = `${region}${SCHEDULED_WORKER_QUEUE_SUFFIX}`;
it("returns the base queue for the default class or no class", () => {
expect(workerQueueForClass(region, "default")).toBe(region);
expect(workerQueueForClass(region, undefined)).toBe(region);
});
it("returns the suffixed queue for the scheduled class", () => {
expect(workerQueueForClass(region, "scheduled")).toBe(scheduled);
});
it("is idempotent — does not double-suffix", () => {
expect(workerQueueForClass(scheduled, "scheduled")).toBe(scheduled);
});
it("round-trips with workerQueueForRun: a scheduled run lands on the queue its class targets", () => {
const enqueued = workerQueueForRun({
workerQueue: region,
rootTriggerSource: "schedule",
splitEnabled: true,
});
expect(workerQueueForClass(region, "scheduled")).toBe(enqueued);
});
});