35 lines
2.2 KiB
JavaScript
35 lines
2.2 KiB
JavaScript
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}`);
|