Skip to content

Commit 3de1f80

Browse files
Add test
1 parent 1adaf8d commit 3de1f80

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2681,6 +2681,55 @@ describe('SnapController', () => {
26812681
},
26822682
);
26832683

2684+
it('ensures onboarding has completed before processing requests', async () => {
2685+
const rootMessenger = getControllerMessenger();
2686+
const messenger = getSnapControllerMessenger(rootMessenger);
2687+
2688+
const callActionSpy = jest.spyOn(messenger, 'call');
2689+
2690+
const { promise, resolve } = createDeferredPromise();
2691+
const ensureOnboardingComplete = jest.fn().mockReturnValue(promise);
2692+
const snapController = getSnapController(
2693+
getSnapControllerOptions({
2694+
messenger,
2695+
state: {
2696+
snaps: getPersistedSnapsState(),
2697+
},
2698+
ensureOnboardingComplete,
2699+
}),
2700+
);
2701+
2702+
const snap = snapController.getExpect(MOCK_SNAP_ID);
2703+
2704+
const requestPromise = snapController.handleRequest({
2705+
snapId: snap.id,
2706+
origin: METAMASK_ORIGIN,
2707+
handler: HandlerType.OnRpcRequest,
2708+
request: {
2709+
jsonrpc: '2.0',
2710+
method: 'test',
2711+
params: {},
2712+
},
2713+
});
2714+
2715+
await sleep(100);
2716+
2717+
expect(callActionSpy).not.toHaveBeenCalledWith(
2718+
'ExecutionService:executeSnap',
2719+
expect.objectContaining({ snapId: MOCK_SNAP_ID }),
2720+
);
2721+
2722+
resolve();
2723+
expect(await requestPromise).toBeUndefined();
2724+
2725+
expect(callActionSpy).toHaveBeenCalledWith(
2726+
'ExecutionService:executeSnap',
2727+
expect.objectContaining({ snapId: MOCK_SNAP_ID }),
2728+
);
2729+
2730+
snapController.destroy();
2731+
});
2732+
26842733
it('throws if the snap does not have permission to handle JSON-RPC requests from dapps', async () => {
26852734
const rootMessenger = getControllerMessenger();
26862735
const messenger = getSnapControllerMessenger(rootMessenger);

0 commit comments

Comments
 (0)