Skip to content

Commit 2c46874

Browse files
author
romin-halltari
committed
add tests
1 parent 1ccf3ed commit 2c46874

File tree

1 file changed

+33
-1
lines changed
  • packages/@magic-sdk/provider/test/spec/core/view-controller

1 file changed

+33
-1
lines changed

packages/@magic-sdk/provider/test/spec/core/view-controller/post.spec.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
/* eslint-disable prefer-spread */
33

44
import browserEnv from '@ikscodes/browser-env';
5-
import { MagicIncomingWindowMessage, MagicOutgoingWindowMessage, JsonRpcRequestPayload } from '@magic-sdk/types';
5+
import {
6+
MagicIncomingWindowMessage,
7+
MagicOutgoingWindowMessage,
8+
JsonRpcRequestPayload,
9+
RPCErrorCode,
10+
} from '@magic-sdk/types';
611
import _ from 'lodash';
712
import { createViewController } from '../../../factories';
813
import { JsonRpcResponse } from '../../../../src/core/json-rpc';
@@ -201,6 +206,30 @@ test('Sends payload and stores rt if response event contains rt', async () => {
201206
expect(FAKE_STORE.rt).toEqual(FAKE_RT);
202207
});
203208

209+
test('does not wait for ready and throws error when platform is react-native', async () => {
210+
SDKEnvironment.platform = 'react-native';
211+
const eventWithRt = { data: { ...responseEvent().data } };
212+
const viewController = createViewController('asdf');
213+
const { handlerSpy, onSpy } = stubViewController(viewController, [
214+
[MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE, eventWithRt],
215+
]);
216+
viewController.ready = new Promise(() => null);
217+
218+
const payload = requestPayload();
219+
220+
try {
221+
await viewController.post(MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST, payload);
222+
} catch (e) {
223+
expect(e).toEqual({
224+
code: RPCErrorCode.InternalError,
225+
message: 'Connection to Magic SDK not ready. Please check your internet connection.',
226+
});
227+
}
228+
expect(createJwtStub).not.toHaveBeenCalledWith();
229+
expect(onSpy.mock.calls[0][0]).toEqual(MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE);
230+
expect(handlerSpy).not.toHaveBeenCalled();
231+
});
232+
204233
test('does not call web crypto api if platform is not web', async () => {
205234
SDKEnvironment.platform = 'react-native';
206235
const eventWithRt = { data: { ...responseEvent().data } };
@@ -210,6 +239,9 @@ test('does not call web crypto api if platform is not web', async () => {
210239
]);
211240
const payload = requestPayload();
212241

242+
// @ts-ignore isReady is private
243+
viewController.isReady = true;
244+
213245
const response = await viewController.post(MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST, payload);
214246

215247
expect(createJwtStub).not.toHaveBeenCalledWith();

0 commit comments

Comments
 (0)