diff --git a/web/src/wasm-core.js b/web/src/wasm-core.js index 339cf3d..612e3a6 100644 --- a/web/src/wasm-core.js +++ b/web/src/wasm-core.js @@ -713,7 +713,7 @@ export async function createWasmSimulator(moduleOptions = {}) { // through the WASM mirror, so preserve the loaded OPFS file here. if (previousParameterFile === null) { await opfs.removeFile(`${parameterPath}.bak`); - } else if (!(await opfs.exists(`${parameterPath}.bak`))) { + } else { await opfs.writeFile(`${parameterPath}.bak`, previousParameterFile); } return events; diff --git a/web/test-browser-wasm-smoke-opfs-parameter-sections.js b/web/test-browser-wasm-smoke-opfs-parameter-sections.js index b3e0300..e486809 100644 --- a/web/test-browser-wasm-smoke-opfs-parameter-sections.js +++ b/web/test-browser-wasm-smoke-opfs-parameter-sections.js @@ -93,9 +93,10 @@ export async function runBrowserOpfsParameterSections(context, simulator) { await runSection("opfs parameter backup after existing save", async () => { await simulator.fs.opfs.writeFile("parameters/existing-save.var", "5161\t3.000000\n"); - // LinuxCNC source basis: rs274ngc_pre.cc save_parameters() - // unlinks filename + ".bak", links the current parameter file to - // filename + ".bak", then renames filename + ".new" over filename. + await simulator.fs.opfs.writeFile("parameters/existing-save.var.bak", "stale previous backup\n"); + // LinuxCNC source basis: rs274ngc_pre.cc save_parameters() unlinks + // filename + ".bak", links the current parameter file to it, + // then renames filename + ".new" over filename. await simulator.parseWithParameterFile( "G21 G90\nG0 X4\nG28.1\nM30\n", "parameters/existing-save.var", @@ -103,11 +104,9 @@ export async function runBrowserOpfsParameterSections(context, simulator) { backend, ); const existingSaveParameterFile = await readOpfsText(simulator, "parameters/existing-save.var"); - expectIncludes(existingSaveParameterFile, "5161\t4.000000", - "LinuxCNC existing OPFS parameter file was not replaced after save"); + expectIncludes(existingSaveParameterFile, "5161\t4.000000", "LinuxCNC existing OPFS parameter file was not replaced after save"); const existingSaveParameterBackup = await readOpfsText(simulator, "parameters/existing-save.var.bak"); - expectIncludes(existingSaveParameterBackup, "5161\t3.000000", - "LinuxCNC existing OPFS parameter backup did not preserve the previous file"); + expectIncludes(existingSaveParameterBackup, "5161\t3.000000", "LinuxCNC existing OPFS parameter backup did not replace the stale backup with the previous file"); await expectMissingOpfsFile( () => simulator.fs.opfs.readFile("parameters/existing-save.var.new"), "LinuxCNC existing OPFS parameter temporary file remained after save",