diff --git a/apps/electron-backend/src/app/app.spec.ts b/apps/electron-backend/src/app/app.spec.ts index fd0bc4d29..41484888b 100644 --- a/apps/electron-backend/src/app/app.spec.ts +++ b/apps/electron-backend/src/app/app.spec.ts @@ -4,6 +4,8 @@ jest.mock('electron', () => ({ app: { getPath: jest.fn(() => '/tmp'), isPackaged: false, + isReady: jest.fn(() => false), + on: jest.fn(), }, BrowserWindow: jest.fn(), Menu: { @@ -230,6 +232,22 @@ describe('Electron app security helpers', () => { ); }); + it('creates the main window immediately when Electron is already ready', () => { + const mainWindow = createMockMainWindow(); + (BrowserWindow as unknown as jest.Mock).mockReturnValue(mainWindow); + (electronApp.isReady as jest.Mock).mockReturnValue(true); + + App.main(electronApp, BrowserWindow); + + expect(BrowserWindow).toHaveBeenCalled(); + expect(electronApp.on).not.toHaveBeenCalledWith( + 'ready', + expect.any(Function) + ); + expect(mainWindow.loadURL).not.toHaveBeenCalled(); + expect(mainWindow.loadFile).not.toHaveBeenCalled(); + }); + it('clears only service worker registrations and cache storage', async () => { await clearElectronServiceWorkerStorage(); diff --git a/apps/electron-backend/src/app/app.ts b/apps/electron-backend/src/app/app.ts index 326ef26e8..e46865396 100644 --- a/apps/electron-backend/src/app/app.ts +++ b/apps/electron-backend/src/app/app.ts @@ -476,7 +476,11 @@ export default class App { App.application = app; App.application.on('window-all-closed', App.onWindowAllClosed); // Quit when all windows are closed. - App.application.on('ready', App.onReady); // App is ready to load data + if (App.application.isReady()) { + App.onReady(); + } else { + App.application.on('ready', App.onReady); // App is ready to load data + } App.application.on('activate', App.onActivate); // App is activated App.application.on('before-quit', () => { if (App.mainWindow)