Skip to content

Commit 1382bf5

Browse files
fix: Await sendWebSocketMessage promise (#3608)
The type for the `sendWebSocketMessage` hook was wrong. The function returns a promise and must be awaited, previously this would result in unhandled rejections.
1 parent 6c0e9a7 commit 1382bf5

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('snap_sendWebSocketMessage', () => {
2323
it('throws if the origin does not have permission', async () => {
2424
const { implementation } = sendWebSocketMessageHandler;
2525

26-
const sendWebSocketMessage = jest.fn();
26+
const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined);
2727
const hasPermission = jest.fn().mockReturnValue(false);
2828
const hooks = { hasPermission, sendWebSocketMessage };
2929

@@ -63,7 +63,7 @@ describe('snap_sendWebSocketMessage', () => {
6363
it('throws if invalid parameters are passed', async () => {
6464
const { implementation } = sendWebSocketMessageHandler;
6565

66-
const sendWebSocketMessage = jest.fn();
66+
const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined);
6767
const hasPermission = jest.fn().mockReturnValue(true);
6868
const hooks = { hasPermission, sendWebSocketMessage };
6969

@@ -103,7 +103,7 @@ describe('snap_sendWebSocketMessage', () => {
103103
it('sends a WebSocket message and returns null', async () => {
104104
const { implementation } = sendWebSocketMessageHandler;
105105

106-
const sendWebSocketMessage = jest.fn();
106+
const sendWebSocketMessage = jest.fn().mockResolvedValue(undefined);
107107
const hasPermission = jest.fn().mockReturnValue(true);
108108
const hooks = { hasPermission, sendWebSocketMessage };
109109

packages/snaps-rpc-methods/src/permitted/sendWebSocketMessage.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const hookNames: MethodHooksObject<SendWebSocketMessageMethodHooks> = {
2828

2929
export type SendWebSocketMessageMethodHooks = {
3030
hasPermission: (permissionName: string) => boolean;
31-
sendWebSocketMessage: (id: string, data: string | number[]) => void;
31+
sendWebSocketMessage: (id: string, data: string | number[]) => Promise<void>;
3232
};
3333

3434
const SendWebSocketMessageParametersStruct = object({
@@ -66,13 +66,13 @@ export const sendWebSocketMessageHandler: PermittedHandlerExport<
6666
* @param hooks.sendWebSocketMessage - The function to send a WebSocket message.
6767
* @returns Nothing.
6868
*/
69-
function sendWebSocketMessageImplementation(
69+
async function sendWebSocketMessageImplementation(
7070
req: JsonRpcRequest<SendWebSocketMessageParameters>,
7171
res: PendingJsonRpcResponse<SendWebSocketMessageResult>,
7272
_next: unknown,
7373
end: JsonRpcEngineEndCallback,
7474
{ hasPermission, sendWebSocketMessage }: SendWebSocketMessageMethodHooks,
75-
): void {
75+
): Promise<void> {
7676
if (!hasPermission(SnapEndowments.NetworkAccess)) {
7777
return end(providerErrors.unauthorized());
7878
}
@@ -81,7 +81,7 @@ function sendWebSocketMessageImplementation(
8181

8282
try {
8383
const { id, message } = getValidatedParams(params);
84-
sendWebSocketMessage(id, message);
84+
await sendWebSocketMessage(id, message);
8585
res.result = null;
8686
} catch (error) {
8787
return end(error);

0 commit comments

Comments
 (0)