Implement configuration, runtime, frontend, and task governance closure
This commit is contained in:
34
web/workspace/test_configuration.mjs
Normal file
34
web/workspace/test_configuration.mjs
Normal file
@@ -0,0 +1,34 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { preflightConfiguration, resolveReference, splitReference } from "./configuration.mjs";
|
||||
|
||||
assert.deepEqual(splitReference("LIB:basic_sim.tcl -no_sim_spindle"), {
|
||||
status: "accepted",
|
||||
code: null,
|
||||
raw: "LIB:basic_sim.tcl -no_sim_spindle",
|
||||
value: "LIB:basic_sim.tcl",
|
||||
args: ["-no_sim_spindle"],
|
||||
});
|
||||
|
||||
const available = new Set([
|
||||
"linuxcnc/lib/hallib/basic_sim.tcl",
|
||||
"linuxcnc/configs/sim/demo/core.hal",
|
||||
"linuxcnc/nc_files/probe.ngc",
|
||||
]);
|
||||
assert.equal(resolveReference({ rawValue: "LIB:basic_sim.tcl -no_sim_spindle", entrypoint: "linuxcnc/configs/sim/demo/main.ini", availablePaths: available }).path, "linuxcnc/lib/hallib/basic_sim.tcl");
|
||||
assert.equal(resolveReference({ rawValue: "core.hal", entrypoint: "linuxcnc/configs/sim/demo/main.ini", availablePaths: available }).path, "linuxcnc/configs/sim/demo/core.hal");
|
||||
assert.equal(resolveReference({ rawValue: "linuxcnc/nc_files/probe.ngc", entrypoint: "linuxcnc/configs/sim/demo/main.ini", availablePaths: available }).path, "linuxcnc/nc_files/probe.ngc");
|
||||
assert.equal(resolveReference({ rawValue: "~/linuxcnc/nc_files", entrypoint: "linuxcnc/configs/sim/demo/main.ini", availablePaths: available }).code, "configuration_host_path");
|
||||
assert.equal(resolveReference({ rawValue: "../../../../etc/passwd", entrypoint: "linuxcnc/configs/sim/demo/main.ini", availablePaths: available }).code, "configuration_outside_repo");
|
||||
const report = preflightConfiguration({
|
||||
entrypoint: "linuxcnc/configs/sim/demo/main.ini",
|
||||
availablePaths: available,
|
||||
rows: [
|
||||
{ resource_source_id: "r1", entrypoint: "linuxcnc/configs/sim/demo/main.ini", path: "LIB:basic_sim.tcl -no_sim_spindle", raw_value: "LIB:basic_sim.tcl -no_sim_spindle", parse_status: "missing" },
|
||||
{ resource_source_id: "r2", entrypoint: "linuxcnc/configs/sim/demo/main.ini", path: "missing.hal", raw_value: "missing.hal", parse_status: "missing" },
|
||||
],
|
||||
});
|
||||
assert.equal(report.schema, "configuration-startup-closure.v1");
|
||||
assert.equal(report.status, "blocked");
|
||||
assert.equal(report.resolved_count, 1);
|
||||
assert.equal(report.blocked_count, 1);
|
||||
console.log(`configuration_resolver=passed resolved=${report.resolved_count} blocked=${report.blocked_count}`);
|
||||
Reference in New Issue
Block a user