Skip to content

Commit 4f124a1

Browse files
committed
Add test
1 parent a7e496e commit 4f124a1

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';
@@ -1010,6 +1010,42 @@ describe('SnapController', () => {
10101010
snapController.destroy();
10111011
});
10121012

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

0 commit comments

Comments
 (0)