Skip to content

Commit ddb532a

Browse files
committed
Add test
1 parent a848a7e commit ddb532a

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

packages/snaps-controllers/src/snaps/SnapController.test.tsx

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
handlerEndowments,
1919
SnapEndowments,
2020
} from '@metamask/snaps-rpc-methods';
21-
import type { SnapId } from '@metamask/snaps-sdk';
21+
import type { Snap, SnapId } from '@metamask/snaps-sdk';
2222
import { AuxiliaryFileEncoding, text } from '@metamask/snaps-sdk';
2323
import { Text } from '@metamask/snaps-sdk/jsx';
2424
import type { SnapPermissions, RpcOrigins } from '@metamask/snaps-utils';
@@ -1011,6 +1011,42 @@ describe('SnapController', () => {
10111011
snapController.destroy();
10121012
});
10131013

1014+
it('filters out removed permissions', async () => {
1015+
const messenger = getSnapControllerMessenger();
1016+
const initialPermissions: SnapPermissions = {
1017+
[handlerEndowments.onRpcRequest as string]: { snaps: false, dapps: true },
1018+
// eslint-disable-next-line @typescript-eslint/naming-convention
1019+
snap_manageAccounts: {},
1020+
};
1021+
1022+
const { manifest } = await getMockSnapFilesWithUpdatedChecksum({
1023+
manifest: getSnapManifest({
1024+
initialPermissions,
1025+
}),
1026+
});
1027+
1028+
const snapController = getSnapController(
1029+
getSnapControllerOptions({
1030+
messenger,
1031+
detectSnapLocation: loopbackDetect({
1032+
manifest: manifest.result,
1033+
}),
1034+
}),
1035+
);
1036+
1037+
const snap = await snapController.installSnaps(MOCK_ORIGIN, {
1038+
[MOCK_SNAP_ID]: {},
1039+
});
1040+
1041+
const permissions = (snap[MOCK_SNAP_ID] as Snap).initialPermissions;
1042+
1043+
expect(permissions).toStrictEqual({
1044+
[handlerEndowments.onRpcRequest as string]: { snaps: false, dapps: true },
1045+
});
1046+
1047+
snapController.destroy();
1048+
});
1049+
10141050
it('throws an error if the installation is disabled during installSnaps', async () => {
10151051
const controller = getSnapController(
10161052
getSnapControllerOptions({

0 commit comments

Comments
 (0)