diff options
| author | Oskar <oskar@mullvad.net> | 2025-08-28 16:50:26 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-08-29 07:38:40 +0200 |
| commit | c8e95ed6b3ecd3b0328dbe2bb934ecd0894f9e5f (patch) | |
| tree | 2e38ad426173d2bb6226fa90e94941e28fdcb2dc /desktop | |
| parent | a3335eae358c4c121b964a10344105bc1989c4a3 (diff) | |
| download | mullvadvpn-c8e95ed6b3ecd3b0328dbe2bb934ecd0894f9e5f.tar.xz mullvadvpn-c8e95ed6b3ecd3b0328dbe2bb934ecd0894f9e5f.zip | |
Add utility function for mocked tests that listens for ipc calls
The new function is quite similar to `mockIpcHandle` but instead of
handling the incoming call, it just returns that it happened along with
the provided argument.
Diffstat (limited to 'desktop')
| -rw-r--r-- | desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts index 171cc1cc50..808321a254 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts @@ -13,6 +13,7 @@ interface StartMockedAppResponse extends Awaited<ReturnType<typeof startApp>> { export interface MockedTestUtils extends TestUtils { mockIpcHandle: MockIpcHandle; sendMockIpcResponse: SendMockIpcResponse; + expectIpcCall: ExpectIpcCall; } export const startMockedApp = async (): Promise<StartMockedAppResponse> => { @@ -27,6 +28,7 @@ export const startMockedApp = async (): Promise<StartMockedAppResponse> => { const startAppResult = await startApp({ args }); const mockIpcHandle = generateMockIpcHandle(startAppResult.app); const sendMockIpcResponse = generateSendMockIpcResponse(startAppResult.app); + const expectIpcCall = generateExpectIpcCall(startAppResult.app); return { ...startAppResult, @@ -34,6 +36,7 @@ export const startMockedApp = async (): Promise<StartMockedAppResponse> => { ...startAppResult.util, mockIpcHandle, sendMockIpcResponse, + expectIpcCall, }, }; }; @@ -83,3 +86,20 @@ export const generateSendMockIpcResponse = (electronApp: ElectronApplication) => ); }; }; + +export type ExpectIpcCall = ReturnType<typeof generateExpectIpcCall>; + +export const generateExpectIpcCall = (electronApp: ElectronApplication) => { + return <T>(channel: string): Promise<T> => { + return electronApp.evaluate( + ({ ipcMain }, { channel }) => { + return new Promise<T>((resolve) => { + ipcMain.handleOnce(channel, (_event, arg) => { + resolve(arg); + }); + }); + }, + { channel }, + ); + }; +}; |
