Guard browser OPFS save operation staging
This commit is contained in:
@@ -4511,6 +4511,30 @@
|
||||
generatedToolTablePath(toolTable.wasmPath, expectedWasmPath);
|
||||
}
|
||||
|
||||
function opfsMachineFilePath(machineId, filename) {
|
||||
return `linuxcnc/machines/${machineId}/${filename}`;
|
||||
}
|
||||
|
||||
function assertOpfsSavedParameterStaging(label, parameters, machineId, filename, expectedWasmPath) {
|
||||
const expectedOpfsPath = opfsMachineFilePath(machineId, filename);
|
||||
assertOpfsParameterStaging(
|
||||
label,
|
||||
parameters,
|
||||
expectedOpfsPath,
|
||||
expectedWasmPath,
|
||||
`${expectedOpfsPath}.bak`,
|
||||
);
|
||||
}
|
||||
|
||||
function assertOpfsSavedToolTableStaging(label, toolTable, machineId, filename, expectedWasmPath) {
|
||||
assertOpfsToolTableStaging(
|
||||
label,
|
||||
toolTable,
|
||||
opfsMachineFilePath(machineId, filename),
|
||||
expectedWasmPath,
|
||||
);
|
||||
}
|
||||
|
||||
function assertOpfsSessionStaging(label, session, machineId, expectedPaths) {
|
||||
if (session.machineId !== machineId) {
|
||||
throw new Error(`${label}: unexpected machine id ${session.machineId}`);
|
||||
@@ -9159,12 +9183,12 @@
|
||||
},
|
||||
{ wasmPath: "/work/browser-linuxcnc.var" },
|
||||
);
|
||||
assertOpfsParameterStaging(
|
||||
assertOpfsSavedParameterStaging(
|
||||
"opfs_save_parameters_staging",
|
||||
savedParameters,
|
||||
"linuxcnc/machines/browser-interp/linuxcnc.var",
|
||||
"browser-interp",
|
||||
"linuxcnc.var",
|
||||
"/work/browser-linuxcnc.var",
|
||||
"linuxcnc/machines/browser-interp/linuxcnc.var.bak",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_parameters",
|
||||
@@ -9205,10 +9229,11 @@
|
||||
"browser-interp",
|
||||
{ wasmPath: "/work/browser-tool.tbl" },
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
assertOpfsSavedToolTableStaging(
|
||||
"opfs_save_tool_table_staging",
|
||||
savedToolTable,
|
||||
"linuxcnc/machines/browser-interp/tool.tbl",
|
||||
"browser-interp",
|
||||
"tool.tbl",
|
||||
"/work/browser-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
@@ -9310,10 +9335,11 @@
|
||||
"browser-random-toolchanger",
|
||||
{ wasmPath: "/work/browser-random-tool.tbl" },
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
assertOpfsSavedToolTableStaging(
|
||||
"opfs_save_random_tool_table_staging",
|
||||
savedRandomToolTable,
|
||||
"linuxcnc/machines/browser-random-toolchanger/tool.tbl",
|
||||
"browser-random-toolchanger",
|
||||
"tool.tbl",
|
||||
"/work/browser-random-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
@@ -9426,12 +9452,12 @@
|
||||
wasmPath: loadedIniFileSession.parameters.wasmPath,
|
||||
},
|
||||
);
|
||||
assertOpfsParameterStaging(
|
||||
assertOpfsSavedParameterStaging(
|
||||
"opfs_save_ini_named_parameters_staging",
|
||||
savedIniNamedParameters,
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom.var",
|
||||
"browser-ini-file-session",
|
||||
"browser-custom.var",
|
||||
"/work/browser-custom.var",
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom.var.bak",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_ini_named_parameter_file",
|
||||
@@ -9484,10 +9510,11 @@
|
||||
wasmPath: loadedIniFileSession.toolTable.wasmPath,
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
assertOpfsSavedToolTableStaging(
|
||||
"opfs_save_ini_named_tool_table_staging",
|
||||
savedIniNamedToolTable,
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom-tool.tbl",
|
||||
"browser-ini-file-session",
|
||||
"browser-custom-tool.tbl",
|
||||
"/work/browser-custom-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
@@ -9610,12 +9637,12 @@
|
||||
wasmPath: loadedIniOverrideSession.parameters.wasmPath,
|
||||
},
|
||||
);
|
||||
assertOpfsParameterStaging(
|
||||
assertOpfsSavedParameterStaging(
|
||||
"opfs_save_explicit_parameters_staging",
|
||||
savedExplicitParameters,
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit.var",
|
||||
"browser-ini-override-session",
|
||||
"browser-explicit.var",
|
||||
"/work/browser-explicit.var",
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit.var.bak",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_explicit_parameter_file",
|
||||
@@ -9656,10 +9683,11 @@
|
||||
wasmPath: loadedIniOverrideSession.toolTable.wasmPath,
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
assertOpfsSavedToolTableStaging(
|
||||
"opfs_save_explicit_tool_table_staging",
|
||||
savedExplicitToolTable,
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit-tool.tbl",
|
||||
"browser-ini-override-session",
|
||||
"browser-explicit-tool.tbl",
|
||||
"/work/browser-explicit-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
|
||||
Reference in New Issue
Block a user