fix: harden Windows single-instance startup (#498)

This commit is contained in:
cedric
2026-03-15 18:50:59 +08:00
committed by GitHub
Unverified
parent 0cdafde2df
commit 04aa94f907
3 changed files with 197 additions and 62 deletions

View File

@@ -0,0 +1,32 @@
import { describe, expect, it } from 'vitest';
import {
consumeMainWindowReady,
createMainWindowFocusState,
requestSecondInstanceFocus,
} from '@electron/main/main-window-focus';
describe('main window focus coordination', () => {
it('defers second-instance focus until the main window is ready', () => {
const state = createMainWindowFocusState();
expect(requestSecondInstanceFocus(state, false)).toBe('defer');
expect(state.pendingSecondInstanceFocus).toBe(true);
expect(consumeMainWindowReady(state)).toBe('focus');
expect(state.pendingSecondInstanceFocus).toBe(false);
});
it('shows the main window normally when no second-instance focus is pending', () => {
const state = createMainWindowFocusState();
expect(consumeMainWindowReady(state)).toBe('show');
expect(state.pendingSecondInstanceFocus).toBe(false);
});
it('focuses immediately when the main window already exists', () => {
const state = createMainWindowFocusState();
requestSecondInstanceFocus(state, false);
expect(requestSecondInstanceFocus(state, true)).toBe('focus-now');
expect(state.pendingSecondInstanceFocus).toBe(false);
});
});