Add a switch to turn job dispatch off, and use it in the dev stack
The scheduler sends a queued job to any idle claimed printer in any farm. The dashboard dev stack is wired to the real printers, so testing the job upload UI there would have started a real print on the first idle one. DISPATCH_ENABLED=false (exactly that string) disables the timer and the nudge from POST /jobs; any other value that looks like an attempt to disable it is warned about, because a typo that silently leaves it on is the dangerous direction. scripts/e2e-camera.sh now always runs the backend with it off.
This commit is contained in:
@@ -70,3 +70,22 @@ describe("nextJobStatus", () => {
|
||||
expect(completable).toEqual(["printing", "paused"]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("the dispatch switch", () => {
|
||||
test("is on by default and off only for the exact string false", async () => {
|
||||
const { dispatchEnabled } = await import("../src/dispatch/enabled");
|
||||
expect(dispatchEnabled({})).toBe(true);
|
||||
expect(dispatchEnabled({ DISPATCH_ENABLED: "true" })).toBe(true);
|
||||
expect(dispatchEnabled({ DISPATCH_ENABLED: "false" })).toBe(false);
|
||||
});
|
||||
|
||||
test("a value that looks like an attempt to disable it but does not is reported", async () => {
|
||||
const { dispatchEnabled, dispatchSwitchWarning } = await import("../src/dispatch/enabled");
|
||||
for (const typo of ["0", "off", "False", "no"]) {
|
||||
expect(dispatchEnabled({ DISPATCH_ENABLED: typo })).toBe(true);
|
||||
expect(dispatchSwitchWarning({ DISPATCH_ENABLED: typo })).toContain("WILL be dispatched");
|
||||
}
|
||||
expect(dispatchSwitchWarning({})).toBeUndefined();
|
||||
expect(dispatchSwitchWarning({ DISPATCH_ENABLED: "false" })).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user