推进 OPFS 机器会话快照加载入口

This commit is contained in:
2026-06-14 15:09:26 +08:00
parent a829984300
commit 37daf58796
4 changed files with 145 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ import {
import {
createMachineSessionSnapshotPayload,
createSessionSnapshot,
loadMachineSessionSnapshot,
loadSessionSnapshot,
saveMachineSessionSnapshot,
saveSessionSnapshot,
@@ -350,6 +351,40 @@ assert.deepEqual(
}),
machineSessionSnapshot,
);
assert.deepEqual(
await loadMachineSessionSnapshot("machine-session-1", "xyzab-tdr", {
storage,
filename: "machine-session-snapshot.json",
}),
machineSessionSnapshot,
);
await assert.rejects(
() => loadMachineSessionSnapshot("machine-session-1", "other-machine", {
storage,
filename: "machine-session-snapshot.json",
}),
/Machine session snapshot id mismatch/,
);
await saveTextFile(
sessionSnapshotPath("machine-session-bad-files"),
JSON.stringify({
...machineSessionSnapshot,
sessionId: "machine-session-bad-files",
payload: {
machineId: "xyzab-tdr",
files: {
ini: "linuxcnc/machines/xyzab-tdr/machine.ini",
parameters: "../linuxcnc.var",
toolTable: "linuxcnc/machines/xyzab-tdr/tool.tbl",
},
},
}),
storage,
);
await assert.rejects(
() => loadMachineSessionSnapshot("machine-session-bad-files", "xyzab-tdr", { storage }),
/Invalid OPFS path/,
);
await saveMachineTextFiles("xyzab-tdr", {
ini: "[EMC]\nMACHINE = xyzab-tdr\n",