From d6d83f72dfba7a32b6797ed0c756cbe195109707 Mon Sep 17 00:00:00 2001 From: Jungho Bang Date: Tue, 17 Sep 2024 13:55:26 -0700 Subject: [PATCH] remove redundant jest helper --- packages/wallet-sdk/jest.setup.ts | 14 ----- .../src/CoinbaseWalletProvider.test.ts | 38 ++++++------- .../sign/walletlink/WalletLinkSigner.test.ts | 55 +++++++++++-------- 3 files changed, 51 insertions(+), 56 deletions(-) diff --git a/packages/wallet-sdk/jest.setup.ts b/packages/wallet-sdk/jest.setup.ts index f7091b9885..96203be767 100644 --- a/packages/wallet-sdk/jest.setup.ts +++ b/packages/wallet-sdk/jest.setup.ts @@ -9,17 +9,3 @@ global.TextEncoder = TextEncoder; // @ts-expect-error Use util TextDecoder global.TextDecoder = TextDecoder; - -expect.extend({ - toThrowEIPError(received, code, message = expect.any(String)) { - const expected = expect.objectContaining({ - code, - message, - }); - return { - pass: this.equals(received, expected), - message: () => - this.utils.printDiffOrStringify(expected, received, 'Expected', 'Received', true), - }; - }, -}); diff --git a/packages/wallet-sdk/src/CoinbaseWalletProvider.test.ts b/packages/wallet-sdk/src/CoinbaseWalletProvider.test.ts index 12744d66fb..e9e03f079a 100644 --- a/packages/wallet-sdk/src/CoinbaseWalletProvider.test.ts +++ b/packages/wallet-sdk/src/CoinbaseWalletProvider.test.ts @@ -77,10 +77,10 @@ describe('Request Handling', () => { }); it('throws error when handling invalid request', async () => { - await expect(provider.request({} as RequestArguments)).rejects.toThrowEIPError( - standardErrorCodes.rpc.invalidParams, - "'args.method' must be a non-empty string." - ); + await expect(provider.request({} as RequestArguments)).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: "'args.method' must be a non-empty string.", + }); }); it('throws error for requests with unsupported or deprecated method', async () => { @@ -88,9 +88,9 @@ describe('Request Handling', () => { const unsupported = ['eth_subscribe', 'eth_unsubscribe']; for (const method of [...deprecated, ...unsupported]) { - await expect(provider.request({ method })).rejects.toThrowEIPError( - standardErrorCodes.provider.unsupportedMethod - ); + await expect(provider.request({ method })).rejects.toMatchObject({ + code: standardErrorCodes.provider.unsupportedMethod, + }); } }); }); @@ -131,10 +131,10 @@ describe('Signer configuration', () => { const error = new Error('Signer selection failed'); mockFetchSignerType.mockRejectedValue(error); - await expect(provider.request({ method: 'eth_requestAccounts' })).rejects.toThrowEIPError( - standardErrorCodes.rpc.internal, - error.message - ); + await expect(provider.request({ method: 'eth_requestAccounts' })).rejects.toMatchObject({ + code: standardErrorCodes.rpc.internal, + message: error.message, + }); expect(mockHandshake).not.toHaveBeenCalled(); expect(mockStoreSignerType).not.toHaveBeenCalled(); }); @@ -144,10 +144,10 @@ describe('Signer configuration', () => { mockFetchSignerType.mockResolvedValue('scw'); mockHandshake.mockRejectedValue(error); - await expect(provider.request({ method: 'eth_requestAccounts' })).rejects.toThrowEIPError( - standardErrorCodes.rpc.internal, - error.message - ); + await expect(provider.request({ method: 'eth_requestAccounts' })).rejects.toMatchObject({ + code: standardErrorCodes.rpc.internal, + message: error.message, + }); expect(mockHandshake).toHaveBeenCalled(); expect(mockStoreSignerType).not.toHaveBeenCalled(); }); @@ -169,10 +169,10 @@ describe('Signer configuration', () => { }); it('should throw error if signer is not initialized', async () => { - await expect(provider.request({ method: 'personal_sign' })).rejects.toThrowEIPError( - standardErrorCodes.provider.unauthorized, - `Must call 'eth_requestAccounts' before other methods` - ); + await expect(provider.request({ method: 'personal_sign' })).rejects.toMatchObject({ + code: standardErrorCodes.provider.unauthorized, + message: `Must call 'eth_requestAccounts' before other methods`, + }); }); it('should set signer to null', async () => { diff --git a/packages/wallet-sdk/src/sign/walletlink/WalletLinkSigner.test.ts b/packages/wallet-sdk/src/sign/walletlink/WalletLinkSigner.test.ts index 191df70cd6..1df3ef3aaa 100644 --- a/packages/wallet-sdk/src/sign/walletlink/WalletLinkSigner.test.ts +++ b/packages/wallet-sdk/src/sign/walletlink/WalletLinkSigner.test.ts @@ -195,10 +195,10 @@ describe('LegacyProvider', () => { method: 'personal_sign', params: ['0x123456789abcdef', 'Super safe message'], }) - ).rejects.toThrowEIPError( - standardErrorCodes.rpc.invalidParams, - 'Invalid Ethereum address: Super safe message' - ); + ).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'Invalid Ethereum address: Super safe message', + }); }); }); @@ -425,10 +425,10 @@ describe('LegacyProvider', () => { method: 'wallet_addEthereumChain', params: [{}], }); - }).rejects.toThrowEIPError( - standardErrorCodes.rpc.invalidParams, - 'chainName is a required field' - ); + }).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'chainName is a required field', + }); }); test('wallet_addEthereumChain native currency', async () => { @@ -442,10 +442,10 @@ describe('LegacyProvider', () => { }, ], }); - }).rejects.toThrowEIPError( - standardErrorCodes.rpc.invalidParams, - 'nativeCurrency is a required field' - ); + }).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'nativeCurrency is a required field', + }); }); test('wallet_switchEthereumChain', async () => { @@ -476,10 +476,10 @@ describe('LegacyProvider', () => { }, ], }); - }).rejects.toThrowEIPError( - standardErrorCodes.provider.unsupportedChain, - expect.stringContaining('Unrecognized chain ID') - ); + }).rejects.toMatchObject({ + code: standardErrorCodes.provider.unsupportedChain, + message: expect.stringContaining('Unrecognized chain ID'), + }); }); test('wallet_watchAsset', async () => { @@ -503,7 +503,10 @@ describe('LegacyProvider', () => { method: 'wallet_watchAsset', params: [{}], }) - ).rejects.toThrowEIPError(standardErrorCodes.rpc.invalidParams, 'Type is required'); + ).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'Type is required', + }); }); test('wallet_watchAsset w/o valid asset type', async () => { @@ -516,10 +519,10 @@ describe('LegacyProvider', () => { }, ], }) - ).rejects.toThrowEIPError( - standardErrorCodes.rpc.invalidParams, - "Asset of type 'ERC721' is not supported" - ); + ).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: "Asset of type 'ERC721' is not supported", + }); }); test('wallet_watchAsset to throw option required error', async () => { @@ -532,7 +535,10 @@ describe('LegacyProvider', () => { }, ], }) - ).rejects.toThrowEIPError(standardErrorCodes.rpc.invalidParams, 'Options are required'); + ).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'Options are required', + }); }); test('wallet_watchAsset to throw address required error', async () => { @@ -546,7 +552,10 @@ describe('LegacyProvider', () => { }, ], }) - ).rejects.toThrowEIPError(standardErrorCodes.rpc.invalidParams, 'Address is required'); + ).rejects.toMatchObject({ + code: standardErrorCodes.rpc.invalidParams, + message: 'Address is required', + }); }); }); });