From 94f9262daaa4b554c6fb739a951795ea076f9973 Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Mon, 25 Aug 2025 09:23:36 +0200 Subject: [PATCH 1/2] fix: Await sendWebSocketMessage promise --- .../src/permitted/sendWebSocketMessage.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.ts b/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.ts index e24137625c..aaae064920 100644 --- a/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.ts +++ b/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.ts @@ -28,7 +28,7 @@ const hookNames: MethodHooksObject = { export type SendWebSocketMessageMethodHooks = { hasPermission: (permissionName: string) => boolean; - sendWebSocketMessage: (id: string, data: string | number[]) => void; + sendWebSocketMessage: (id: string, data: string | number[]) => Promise; }; const SendWebSocketMessageParametersStruct = object({ @@ -66,13 +66,13 @@ export const sendWebSocketMessageHandler: PermittedHandlerExport< * @param hooks.sendWebSocketMessage - The function to send a WebSocket message. * @returns Nothing. */ -function sendWebSocketMessageImplementation( +async function sendWebSocketMessageImplementation( req: JsonRpcRequest, res: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, sendWebSocketMessage }: SendWebSocketMessageMethodHooks, -): void { +): Promise { if (!hasPermission(SnapEndowments.NetworkAccess)) { return end(providerErrors.unauthorized()); } @@ -81,7 +81,7 @@ function sendWebSocketMessageImplementation( try { const { id, message } = getValidatedParams(params); - sendWebSocketMessage(id, message); + await sendWebSocketMessage(id, message); res.result = null; } catch (error) { return end(error); From 9b0e8f34f9fb8b6bd72c3355a046b12ae0ef707c Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Mon, 25 Aug 2025 09:32:31 +0200 Subject: [PATCH 2/2] Tweak mock functions --- .../src/permitted/sendWebSocketMessage.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.test.ts b/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.test.ts index f0266f821b..69b62b9e77 100644 --- a/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.test.ts +++ b/packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.test.ts @@ -23,7 +23,7 @@ describe('snap_sendWebSocketMessage', () => { it('throws if the origin does not have permission', async () => { const { implementation } = sendWebSocketMessageHandler; - const sendWebSocketMessage = jest.fn(); + const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined); const hasPermission = jest.fn().mockReturnValue(false); const hooks = { hasPermission, sendWebSocketMessage }; @@ -63,7 +63,7 @@ describe('snap_sendWebSocketMessage', () => { it('throws if invalid parameters are passed', async () => { const { implementation } = sendWebSocketMessageHandler; - const sendWebSocketMessage = jest.fn(); + const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined); const hasPermission = jest.fn().mockReturnValue(true); const hooks = { hasPermission, sendWebSocketMessage }; @@ -103,7 +103,7 @@ describe('snap_sendWebSocketMessage', () => { it('sends a WebSocket message and returns null', async () => { const { implementation } = sendWebSocketMessageHandler; - const sendWebSocketMessage = jest.fn(); + const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined); const hasPermission = jest.fn().mockReturnValue(true); const hooks = { hasPermission, sendWebSocketMessage };