summaryrefslogtreecommitdiffhomepage
path: root/desktop
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-08-28 16:50:26 +0200
committerOskar <oskar@mullvad.net>2025-08-29 07:38:40 +0200
commitc8e95ed6b3ecd3b0328dbe2bb934ecd0894f9e5f (patch)
tree2e38ad426173d2bb6226fa90e94941e28fdcb2dc /desktop
parenta3335eae358c4c121b964a10344105bc1989c4a3 (diff)
downloadmullvadvpn-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.ts20
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 },
+ );
+ };
+};