Files
triggerdotdev--trigger.dev/apps/webapp/test/workerQueueSplit.server.test.ts
T
Eric Allam 2fa84ea124 feat(webapp): gate worker dequeues by worker queue via env var (#4030)
## Summary

Adds a `RUN_ENGINE_DEQUEUE_DISABLED_WORKER_QUEUES` setting that refuses
worker dequeue requests for the listed worker queues (or base regions),
so their runs stay queued instead of being handed to workers that can't
run them. Blocked dequeues are counted via a
`run_engine.dequeue.blocked` OTel counter (labeled by `worker_queue` and
`region`).
2026-06-24 19:07:43 +01:00

45 lines
1.9 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
matchesDisabledWorkerQueue,
parseDisabledWorkerQueues,
} from "~/runEngine/concerns/workerQueueSplit.server";
describe("parseDisabledWorkerQueues", () => {
it("returns an empty set for undefined or empty input", () => {
expect(parseDisabledWorkerQueues(undefined).size).toBe(0);
expect(parseDisabledWorkerQueues("").size).toBe(0);
expect(parseDisabledWorkerQueues(" , ,").size).toBe(0);
});
it("splits, trims, and drops empties", () => {
const parsed = parseDisabledWorkerQueues(" eu-central-1 , us-east-1:scheduled ,, ");
expect([...parsed]).toEqual(["eu-central-1", "us-east-1:scheduled"]);
});
});
describe("matchesDisabledWorkerQueue", () => {
it("never matches when the disabled set is empty", () => {
const empty = parseDisabledWorkerQueues(undefined);
expect(matchesDisabledWorkerQueue("eu-central-1", empty)).toBe(false);
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", empty)).toBe(false);
});
it("gates the base region and its scheduled split when the base region is listed", () => {
const disabled = parseDisabledWorkerQueues("eu-central-1");
expect(matchesDisabledWorkerQueue("eu-central-1", disabled)).toBe(true);
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", disabled)).toBe(true);
});
it("leaves other regions alone", () => {
const disabled = parseDisabledWorkerQueues("eu-central-1");
expect(matchesDisabledWorkerQueue("us-east-1", disabled)).toBe(false);
expect(matchesDisabledWorkerQueue("us-east-1:scheduled", disabled)).toBe(false);
});
it("gates only the scheduled split when a full worker queue is listed", () => {
const disabled = parseDisabledWorkerQueues("eu-central-1:scheduled");
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", disabled)).toBe(true);
expect(matchesDisabledWorkerQueue("eu-central-1", disabled)).toBe(false);
});
});