diff --git a/jest.config.js b/jest.config.js index 29cc8ec7..1773d9d0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,5 @@ module.exports = { transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\](?!(axios|is-retry-allowed)).+\\.(js|jsx)$'], setupFilesAfterEnv: ['/test/crypto.ts'], + setupFiles: ['/setup.jest.js'], }; diff --git a/setup.jest.js b/setup.jest.js new file mode 100644 index 00000000..02b5b2d3 --- /dev/null +++ b/setup.jest.js @@ -0,0 +1,3 @@ +import { TextDecoder, TextEncoder } from 'util'; +global.TextEncoder = TextEncoder; +global.TextDecoder = TextDecoder; diff --git a/src/webview/client.ts b/src/webview/client.ts index c8e53a8b..af1c1c91 100644 --- a/src/webview/client.ts +++ b/src/webview/client.ts @@ -63,17 +63,21 @@ export const WebViewApi = () => { }, getAssets: async (assets: string[], cb: (assets: WebviewAsset[]) => void) => { + const cbf = (str: string) => { + const assets = JSON.parse(str) as WebviewAsset[]; + cb(assets); + }; switch (getMixinContext().platform) { case 'iOS': if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.getAssets) { - window.assetsCallbackFunction = cb; + window.assetsCallbackFunction = cbf; await window.webkit.messageHandlers.getAssets.postMessage([assets, 'assetsCallbackFunction']); } break; case 'Android': case 'Desktop': if (window.MixinContext && typeof window.MixinContext.getAssets === 'function') { - window.assetsCallbackFunction = cb; + window.assetsCallbackFunction = cbf; await window.MixinContext.getAssets(assets, 'assetsCallbackFunction'); } break; diff --git a/src/webview/type.ts b/src/webview/type.ts index 2a219014..ea6824ba 100644 --- a/src/webview/type.ts +++ b/src/webview/type.ts @@ -49,7 +49,7 @@ declare global { getTipAddress?: Messengers['getTipAddress']; tipSign?: Messengers['tipSign']; }; - assetsCallbackFunction?: (res: WebviewAsset[]) => void; + assetsCallbackFunction?: (res: string) => void; tipAddressCallbackFunction?: (address: string) => void; tipSignCallbackFunction?: (signature: string) => void; }