Files
electron/spec/fixtures/api/singleton-userdata/main.js
Noah Gregory 6a47bb4731 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
2026-02-04 14:43:36 -05:00

20 lines
696 B
JavaScript

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