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
This commit is contained in:
Noah Gregory
2026-02-04 14:43:36 -05:00
committed by GitHub
parent ef11669b67
commit 6a47bb4731

View File

@@ -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);