Skip to content

Commit

Permalink
Fix typing issues
Browse files Browse the repository at this point in the history
  • Loading branch information
FrederikBolding committed Nov 9, 2022
1 parent cda334c commit a173d93
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 18 deletions.
4 changes: 2 additions & 2 deletions packages/rpc-methods/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ module.exports = deepmerge(baseConfig, {
global: {
branches: 85.82,
functions: 80,
lines: 60.29,
statements: 60.29,
lines: 60.24,
statements: 60.24,
},
},
testTimeout: 2500,
Expand Down
35 changes: 28 additions & 7 deletions packages/rpc-methods/src/permitted/requestSnaps.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@ import {
MOCK_SNAP_ID,
getTruncatedSnap,
} from '@metamask/snap-utils/test-utils';
import { getSnapPermissionName } from '@metamask/snap-utils';
import {
JsonRpcRequest,
JsonRpcSuccess,
PendingJsonRpcResponse,
} from '@metamask/types';
import {
getSnapPermissionName,
InstallSnapsResult,
} from '@metamask/snap-utils';
import { JsonRpcEngine } from 'json-rpc-engine';
import { RequestedPermissions } from '@metamask/controllers';
import { requestSnapsHandler } from './requestSnaps';

describe('requestSnapsHandler', () => {
Expand Down Expand Up @@ -49,17 +58,23 @@ describe('implementation', () => {

const engine = new JsonRpcEngine();
engine.push((req, res, next, end) =>
implementation(req as any, res as any, next, end, hooks),
implementation(
req as JsonRpcRequest<RequestedPermissions>,
res as PendingJsonRpcResponse<InstallSnapsResult>,
next,
end,
hooks,
),
);

const response: any = await engine.handle({
const response = (await engine.handle({
jsonrpc: '2.0',
id: 1,
method: 'wallet_installSnaps',
params: {
[MOCK_SNAP_ID]: {},
},
});
})) as JsonRpcSuccess<InstallSnapsResult>;

expect(hooks.requestPermissions).toHaveBeenCalledWith({
[getSnapPermissionName(MOCK_SNAP_ID)]: {},
Expand Down Expand Up @@ -95,17 +110,23 @@ describe('implementation', () => {

const engine = new JsonRpcEngine();
engine.push((req, res, next, end) =>
implementation(req as any, res as any, next, end, hooks),
implementation(
req as JsonRpcRequest<RequestedPermissions>,
res as PendingJsonRpcResponse<InstallSnapsResult>,
next,
end,
hooks,
),
);

const response: any = await engine.handle({
const response = (await engine.handle({
jsonrpc: '2.0',
id: 1,
method: 'wallet_installSnaps',
params: {
[MOCK_SNAP_ID]: {},
},
});
})) as JsonRpcSuccess<InstallSnapsResult>;

expect(hooks.requestPermissions).not.toHaveBeenCalledWith({
[getSnapPermissionName(MOCK_SNAP_ID)]: {},
Expand Down
16 changes: 7 additions & 9 deletions packages/rpc-methods/src/permitted/requestSnaps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,12 @@ async function requestSnapsImplementation(

try {
// We expect the params to be the same as wallet_requestPermissions
const requestedPermissions = Object.keys(requestedSnaps).reduce(
(acc, key) => {
// @ts-expect-error TODO: Type error
acc[getSnapPermissionName(key)] = requestedSnaps[key];
return acc;
},
{},
);
const requestedPermissions = Object.keys(requestedSnaps).reduce<
Record<string, Partial<PermissionConstraint>>
>((acc, key) => {
acc[getSnapPermissionName(key)] = requestedSnaps[key];
return acc;
}, {});
const existingPermissions = await getPermissions();
if (
!existingPermissions ||
Expand All @@ -152,7 +150,7 @@ async function requestSnapsImplementation(
try {
res.result = await handleInstallSnaps(requestedSnaps, installSnaps);
} catch (err) {
res.error = err as Error;
res.error = err;
}
return end();
}

0 comments on commit a173d93

Please sign in to comment.