Implement configuration, runtime, frontend, and task governance closure
This commit is contained in:
26
web/worker/test_configuration_preflight.mjs
Normal file
26
web/worker/test_configuration_preflight.mjs
Normal file
@@ -0,0 +1,26 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { SimSession, CONTEXT_ID } from "./sim-session.mjs";
|
||||
|
||||
let lastSeq = 0;
|
||||
const core = {
|
||||
_sim_protocol_reset() {},
|
||||
_sim_protocol_accept(...args) { if (args[1] !== lastSeq + 1) return -101; lastSeq = args[1]; return 0; },
|
||||
_sim_create() { return 0; },
|
||||
_sim_load_workspace() { return 0; },
|
||||
};
|
||||
const session = new SimSession(core);
|
||||
const base = { schema_version: 1, context_id: CONTEXT_ID, session_id: "config-s-1" };
|
||||
assert.equal(session.accept({ ...base, kind: "HELLO", seq: 1, payload: {} }).kind, "CAPABILITIES");
|
||||
assert.equal(session.accept({ ...base, kind: "SESSION_ATTACH", seq: 2, payload: {} }).kind, "SESSION_READY");
|
||||
const response = session.accept({ ...base, kind: "LOAD_WORKSPACE", seq: 3, operation_id: "op-config", payload: {
|
||||
root_path: "/workspace",
|
||||
configuration: {
|
||||
entrypoint: "linuxcnc/configs/sim/demo/main.ini",
|
||||
availablePaths: ["linuxcnc/configs/sim/demo/main.ini"],
|
||||
rows: [{ resource_source_id: "missing", entrypoint: "linuxcnc/configs/sim/demo/main.ini", raw_value: "missing.hal", path: "missing.hal", parse_status: "missing" }],
|
||||
},
|
||||
} });
|
||||
assert.equal(response.kind, "ERROR");
|
||||
assert.equal(response.payload.code, "configuration_preflight");
|
||||
assert.equal(response.payload.preflight.blocked_count, 1);
|
||||
console.log("configuration_preflight=passed");
|
||||
Reference in New Issue
Block a user