Checkpoint web parity through Chromium input tasks
This commit is contained in:
18
web/tests/unit/server-job-resource-budget.test.mjs
Normal file
18
web/tests/unit/server-job-resource-budget.test.mjs
Normal file
@@ -0,0 +1,18 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { createServerJobResourceReceipt, parseServerJobResourceBudget, SERVER_JOB_RESOURCE_LIMITS } from "../../../tools/web/server-job-resource-budget.mjs";
|
||||
|
||||
const budget = { schemaVersion: 1, ...SERVER_JOB_RESOURCE_LIMITS };
|
||||
const usage = { cpuMs: 10, memoryBytes: 1024, processCount: 1, fileCount: 2, wallMs: 20, outputBytes: 512 };
|
||||
|
||||
test("M13-04C accepts bounded usage and marks enforcement", () => {
|
||||
assert.deepEqual(parseServerJobResourceBudget(budget), budget);
|
||||
assert.deepEqual(createServerJobResourceReceipt(budget, usage), { schemaVersion: 1, status: "SUCCEEDED", budget, usage, enforced: true, exceeded: [] });
|
||||
});
|
||||
|
||||
test("M13-04C rejects each resource overage with a stable code", () => {
|
||||
for (const field of Object.keys(SERVER_JOB_RESOURCE_LIMITS)) {
|
||||
assert.throws(() => createServerJobResourceReceipt(budget, { ...usage, [field]: SERVER_JOB_RESOURCE_LIMITS[field] + 1 }), new RegExp(`SERVER_JOB_BUDGET_EXCEEDED.*${field}`));
|
||||
}
|
||||
assert.throws(() => parseServerJobResourceBudget({ ...budget, unknown: 1 }), /SERVER_JOB_BUDGET_INVALID/);
|
||||
});
|
||||
Reference in New Issue
Block a user