From 6a47bb47315d68570db2767e91cb2d6ff0bc996f Mon Sep 17 00:00:00 2001 From: Noah Gregory Date: Wed, 4 Feb 2026 14:43:36 -0500 Subject: [PATCH] fix: use `temp` directory for singleton test and clean up at end (#49604) * fix: create directory for singleton test in `temp` instead of `home` * fix: remove directory for singleton test at test end * refactor: avoid extraneous declarations in singleton test * refactor: reintroduce `userDataFolder` declaration in singleton test * refactor: move cleanup before app exit in singleton test * style: add missing semicolon * refactor: set the user data path after pre-test cleanup in singleton test * fix: release lock before cleanup in singleton test --- spec/fixtures/api/singleton-userdata/main.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/spec/fixtures/api/singleton-userdata/main.js b/spec/fixtures/api/singleton-userdata/main.js index a0ec2f90a2..569206e258 100644 --- a/spec/fixtures/api/singleton-userdata/main.js +++ b/spec/fixtures/api/singleton-userdata/main.js @@ -3,11 +3,17 @@ const { app } = require('electron'); const fs = require('node:fs'); const path = require('node:path'); +const userDataFolder = path.join(app.getPath('temp'), 'electron-test-singleton-userdata'); + // non-existent user data folder should not break requestSingleInstanceLock() // ref: https://github.com/electron/electron/issues/33547 -const userDataFolder = path.join(app.getPath('home'), 'electron-test-singleton-userdata'); -fs.rmSync(userDataFolder, { force: true, recursive: true }); -app.setPath('userData', userDataFolder); +fs.rmSync(userDataFolder, { recursive: true, force: true }); +// set the user data path after clearing out old state and right before we use it +app.setPath('userData', userDataFolder); const gotTheLock = app.requestSingleInstanceLock(); + +app.releaseSingleInstanceLock(); +fs.rmSync(userDataFolder, { recursive: true, force: true }); + app.exit(gotTheLock ? 0 : 1);