1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/ui/pages/settings/snaps/view-snap/view-snap.test.js
Frederik Bolding f829f0069d
[FLASK] Allow Snaps to use eth_accounts as a revokable permission (#19306)
* Add support for snap authorship component at the top of PermissionConnect

* Add PermissionCellOptions

* Add details popover

* Add action for revoking dynamic permissions

* Improve UI and revoke logic

* Better eth_accounts screen support

* Fix tests

* Fix lint

* More linting fixes

* Fix missing fence

* Add another fence

* Unnest permission page to fix weird CSS issues

* Hide footer on permissions connect when using a snap
2023-07-06 22:54:27 +02:00

77 lines
2.3 KiB
JavaScript

import * as React from 'react';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { renderWithProvider } from '../../../../../test/lib/render-helpers';
import mockState from '../../../../../test/data/mock-state.json';
import ViewSnap from './view-snap';
jest.mock('../../../../store/actions.ts', () => {
return {
disableSnap: jest.fn(),
enableSnap: jest.fn(),
removeSnap: jest.fn(),
removePermissionsFor: jest.fn(),
updateCaveat: jest.fn(),
};
});
jest.mock('react-router-dom', () => {
const original = jest.requireActual('react-router-dom');
return {
...original,
useLocation: jest.fn(() => ({
pathname: `/settings/snaps-view/${encodeURIComponent(
'npm:@metamask/test-snap-bip44',
)}`,
})),
};
});
const mockStore = configureMockStore([thunk])(mockState);
describe('ViewSnap', () => {
it('should properly display Snap View elements', async () => {
const { getByText, container, getByRole } = renderWithProvider(
<ViewSnap />,
mockStore,
);
// Snap name & Snap authorship component
expect(getByText('BIP-44 Test Snap')).toBeDefined();
expect(
container.getElementsByClassName('snaps-authorship-expanded')?.length,
).toBe(1);
// Snap description
expect(
getByText('An example Snap that signs messages using BLS.'),
).toBeDefined();
// Snap version info
expect(getByText('5.1.2')).toBeDefined();
// Enable Snap
expect(getByText('Enabled')).toBeDefined();
expect(container.getElementsByClassName('toggle-button')?.length).toBe(1);
// Permissions
expect(getByText('Permissions')).toBeDefined();
expect(
container.getElementsByClassName('snap-permissions-list')?.length,
).toBe(1);
// Connected sites
expect(getByText('Connected sites')).toBeDefined();
expect(
container.getElementsByClassName('connected-sites-list__content-rows')
?.length,
).toBe(1);
// Remove snap
expect(getByText('Remove snap')).toBeDefined();
expect(
getByText(
'This action will delete the snap, its data and revoke your given permissions.',
),
).toBeDefined();
expect(getByText('Remove BIP-44 Test Snap')).toBeDefined();
expect(getByRole('button')).toHaveClass(
'button btn--rounded btn-danger view-snap__remove-button',
);
});
});