Files
workinf_Blender_Wasm/web/tests/unit/server-job-resource-budget.test.mjs
mes123456 380cbed4ff
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

19 lines
1.1 KiB
JavaScript

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/);
});