mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-25 03:20:23 +01:00
01a3a5d2c1
* Bump Snaps packages * Add endowment:lifecycle-hooks permission * Run yarn lint:fix * Fix unit test * Update LavaMoat policies --------- Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
69 lines
2.3 KiB
JavaScript
69 lines
2.3 KiB
JavaScript
import { endowmentPermissionBuilders } from '@metamask/snaps-controllers';
|
|
import { restrictedMethodPermissionBuilders } from '@metamask/rpc-methods';
|
|
import {
|
|
EndowmentPermissions,
|
|
ExcludedSnapEndowments,
|
|
ExcludedSnapPermissions,
|
|
RestrictedMethods,
|
|
} from './permissions';
|
|
|
|
describe('EndowmentPermissions', () => {
|
|
it('has the expected permission keys', () => {
|
|
// Since some permissions are fenced out, this causes problems with the
|
|
// test, so we re-add them here.
|
|
expect(Object.keys(EndowmentPermissions).sort()).toStrictEqual(
|
|
[
|
|
'endowment:long-running',
|
|
'endowment:lifecycle-hooks',
|
|
...Object.keys(endowmentPermissionBuilders).filter(
|
|
(targetName) =>
|
|
!Object.keys(ExcludedSnapEndowments).includes(targetName),
|
|
),
|
|
].sort(),
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('RestrictedMethods', () => {
|
|
it('has the expected permission keys', () => {
|
|
// this is done because we there is a difference between flask and stable permissions
|
|
// the code fence in `shared/constants/snaps/permissions.ts` is not supported in jest
|
|
const mainBuildRestrictedMethodPermissions = Object.keys(RestrictedMethods)
|
|
.filter((key) => key !== 'snap_manageAccounts')
|
|
.sort();
|
|
|
|
expect(mainBuildRestrictedMethodPermissions).toStrictEqual(
|
|
[
|
|
'eth_accounts',
|
|
...Object.keys(restrictedMethodPermissionBuilders).filter(
|
|
(targetName) =>
|
|
!Object.keys(ExcludedSnapPermissions).includes(targetName),
|
|
),
|
|
].sort(),
|
|
);
|
|
});
|
|
});
|
|
|
|
// Kept here because code fences are not supported in jest.
|
|
// rpc methods flask has more restricted endowment permission builders
|
|
jest.mock('@metamask/rpc-methods', () =>
|
|
jest.requireActual('@metamask/rpc-methods-flask'),
|
|
);
|
|
|
|
describe('Flask Restricted Methods', () => {
|
|
it('has the expected flask permission keys', () => {
|
|
const flaskExcludedSnapPermissions = Object.keys(
|
|
ExcludedSnapPermissions,
|
|
).filter((key) => key !== 'snap_manageAccounts');
|
|
|
|
expect(Object.keys(RestrictedMethods).sort()).toStrictEqual(
|
|
[
|
|
'eth_accounts',
|
|
...Object.keys(restrictedMethodPermissionBuilders).filter(
|
|
(targetName) => !flaskExcludedSnapPermissions.includes(targetName),
|
|
),
|
|
].sort(),
|
|
);
|
|
});
|
|
});
|