From daf98f83d4ef5483340d60314051739d2996ba21 Mon Sep 17 00:00:00 2001 From: Viktor Vasas Date: Sat, 21 Sep 2024 08:56:56 +0200 Subject: [PATCH] fix: test cases --- .../services/accounts/AccountsService.test.ts | 57 ++++++++++++++----- .../fireblocks/FireblocksService.test.ts | 14 ++--- ...migrateMissingPublicKeysFromLedger.test.ts | 13 ++--- .../services/secrets/SecretsService.test.ts | 3 +- .../services/secrets/SecretsService.ts | 1 - .../handlers/updateSignerToken.test.ts | 15 ++--- .../services/wallet/WalletService.test.ts | 14 ++--- .../handlers/getUnencryptedMnemonic.test.ts | 14 ++--- .../storeBtcWalletPolicyDetails.test.ts | 12 ++-- 9 files changed, 76 insertions(+), 67 deletions(-) diff --git a/src/background/services/accounts/AccountsService.test.ts b/src/background/services/accounts/AccountsService.test.ts index bbf19a6c..4829c66f 100644 --- a/src/background/services/accounts/AccountsService.test.ts +++ b/src/background/services/accounts/AccountsService.test.ts @@ -266,12 +266,14 @@ describe('background/services/accounts/AccountsService', () => { expect(secretsService.getAddresses).toHaveBeenNthCalledWith( 1, 0, - walletId + walletId, + networkService ); expect(secretsService.getAddresses).toHaveBeenNthCalledWith( 2, 1, - walletId + walletId, + networkService ); expect(secretsService.getImportedAddresses).toBeCalledTimes(3); @@ -359,6 +361,7 @@ describe('background/services/accounts/AccountsService', () => { }); it('correctly updates addresses for selected imported account', async () => { + const isMainnet = true; jest .mocked(secretsService.getImportedAddresses) .mockImplementation((id) => { @@ -375,7 +378,8 @@ describe('background/services/accounts/AccountsService', () => { await accountsService.refreshAddressesForAccount('fb-acc'); expect(secretsService.getImportedAddresses).toHaveBeenCalledWith( - 'fb-acc' + 'fb-acc', + isMainnet ); expect(secretsService.getAddresses).toHaveBeenCalledTimes(0); expect(accountsService.getAccounts().imported['fb-acc']).toEqual({ @@ -494,7 +498,12 @@ describe('background/services/accounts/AccountsService', () => { walletId, }); expect(secretsService.addAddress).toBeCalledTimes(1); - expect(secretsService.addAddress).toBeCalledWith(0, WALLET_ID); + expect(secretsService.addAddress).toBeCalledWith({ + index: 0, + walletId: WALLET_ID, + networkService, + ledgerService, + }); const accounts = accountsService.getAccounts(); expect(accounts).toStrictEqual({ @@ -541,7 +550,12 @@ describe('background/services/accounts/AccountsService', () => { await accountsService.addPrimaryAccount({ walletId: WALLET_ID }); expect(secretsService.addAddress).toBeCalledTimes(1); - expect(secretsService.addAddress).toBeCalledWith(2, WALLET_ID); + expect(secretsService.addAddress).toBeCalledWith({ + index: 2, + walletId: WALLET_ID, + networkService, + ledgerService, + }); expect(permissionsService.addWhitelistDomains).toBeCalledTimes(1); expect(permissionsService.addWhitelistDomains).toBeCalledWith( '0x000000000' @@ -577,7 +591,12 @@ describe('background/services/accounts/AccountsService', () => { walletId: WALLET_ID, }); expect(secretsService.addAddress).toBeCalledTimes(1); - expect(secretsService.addAddress).toBeCalledWith(2, WALLET_ID); + expect(secretsService.addAddress).toBeCalledWith({ + index: 2, + walletId: WALLET_ID, + networkService, + ledgerService, + }); expect(permissionsService.addWhitelistDomains).toBeCalledTimes(1); expect(permissionsService.addWhitelistDomains).toBeCalledWith( '0x000000000' @@ -639,6 +658,7 @@ describe('background/services/accounts/AccountsService', () => { const commitMock = jest.fn(); it('adds account to the imported list correctly', async () => { + const isMainnet = true; const options: ImportData = { importType: ImportType.PRIVATE_KEY, data: 'privateKey', @@ -662,7 +682,10 @@ describe('background/services/accounts/AccountsService', () => { options, }); expect(secretsService.addImportedWallet).toBeCalledTimes(1); - expect(secretsService.addImportedWallet).toBeCalledWith(options); + expect(secretsService.addImportedWallet).toBeCalledWith( + options, + isMainnet + ); expect(commitMock).toHaveBeenCalled(); expect(permissionsService.addWhitelistDomains).toBeCalledTimes(1); expect(permissionsService.addWhitelistDomains).toBeCalledWith( @@ -695,6 +718,7 @@ describe('background/services/accounts/AccountsService', () => { }); it('sets default name when no name is given', async () => { + const isMainnet = true; const options: ImportData = { importType: ImportType.PRIVATE_KEY, data: 'privateKey', @@ -717,7 +741,10 @@ describe('background/services/accounts/AccountsService', () => { await accountsService.addImportedAccount({ options }); expect(secretsService.addImportedWallet).toBeCalledTimes(1); - expect(secretsService.addImportedWallet).toBeCalledWith(options); + expect(secretsService.addImportedWallet).toBeCalledWith( + options, + isMainnet + ); expect(commitMock).toHaveBeenCalled(); expect(permissionsService.addWhitelistDomains).toBeCalledTimes(1); expect(permissionsService.addWhitelistDomains).toBeCalledWith( @@ -791,6 +818,7 @@ describe('background/services/accounts/AccountsService', () => { }); it('returns the existing account id on duplicated accounts imports', async () => { + const isMainnet = true; const options: ImportData = { importType: ImportType.PRIVATE_KEY, data: 'privateKey', @@ -815,7 +843,10 @@ describe('background/services/accounts/AccountsService', () => { '0x1' ); expect(secretsService.addImportedWallet).toBeCalledTimes(1); - expect(secretsService.addImportedWallet).toBeCalledWith(options); + expect(secretsService.addImportedWallet).toBeCalledWith( + options, + isMainnet + ); expect(commitMock).not.toHaveBeenCalled(); expect(permissionsService.addWhitelistDomains).not.toHaveBeenCalled(); }); @@ -1009,10 +1040,10 @@ describe('background/services/accounts/AccountsService', () => { expect(result).toStrictEqual(expectedAccounts); expect(eventListener).toHaveBeenCalledTimes(1); expect(eventListener).toHaveBeenCalledWith(expectedAccounts); - expect(secretsService.deleteImportedWallets).toHaveBeenCalledWith([ - '0x1', - '0x2', - ]); + expect(secretsService.deleteImportedWallets).toHaveBeenCalledWith( + ['0x1', '0x2'], + walletConnectService + ); }); it('changes the active account if deleted', async () => { diff --git a/src/background/services/fireblocks/FireblocksService.test.ts b/src/background/services/fireblocks/FireblocksService.test.ts index e8e84214..6921de21 100644 --- a/src/background/services/fireblocks/FireblocksService.test.ts +++ b/src/background/services/fireblocks/FireblocksService.test.ts @@ -1,6 +1,6 @@ import { sha256 } from 'ethers'; import { PeerType } from 'fireblocks-sdk'; -import { AccountType, FireblocksAccount } from '../accounts/models'; +import { Account, AccountType, FireblocksAccount } from '../accounts/models'; import { SecretType } from '../secrets/models'; import { SecretsService } from '../secrets/SecretsService'; import { FireblocksSecretsService } from './FireblocksSecretsService'; @@ -60,15 +60,9 @@ const mockResponsesByPath = }; describe('src/background/services/fireblocks/FireblocksService', () => { - const accountsService = new AccountsService( - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any - ); + const accountsService: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; const secretsService = jest.mocked(new SecretsService({} as any)); const secretsProvider = new FireblocksSecretsService( secretsService, diff --git a/src/background/services/ledger/handlers/migrateMissingPublicKeysFromLedger.test.ts b/src/background/services/ledger/handlers/migrateMissingPublicKeysFromLedger.test.ts index a7d78936..7b823376 100644 --- a/src/background/services/ledger/handlers/migrateMissingPublicKeysFromLedger.test.ts +++ b/src/background/services/ledger/handlers/migrateMissingPublicKeysFromLedger.test.ts @@ -10,6 +10,7 @@ import { LedgerTransport } from '../LedgerTransport'; import { MigrateMissingPublicKeysFromLedgerHandler } from './migrateMissingPublicKeysFromLedger'; import { buildRpcCall } from '@src/tests/test-utils'; import { AccountsService } from '../../accounts/AccountsService'; +import { Account } from '../../accounts/models'; jest.mock('../../secrets/SecretsService'); jest.mock('@avalabs/core-wallets-sdk'); @@ -20,15 +21,9 @@ describe('src/background/services/ledger/handlers/migrateMissingPublicKeysFromLe id: '123', method: ExtensionRequest.LEDGER_MIGRATE_MISSING_PUBKEYS, } as any; - const accountsService = new AccountsService( - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any - ); + const accountsService: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; const secretsService = jest.mocked(new SecretsService({} as any)); const ledgerService = {} as any; diff --git a/src/background/services/secrets/SecretsService.test.ts b/src/background/services/secrets/SecretsService.test.ts index 51a88034..800b86dd 100644 --- a/src/background/services/secrets/SecretsService.test.ts +++ b/src/background/services/secrets/SecretsService.test.ts @@ -19,6 +19,7 @@ import { WalletConnectService } from '../walletConnect/WalletConnectService'; jest.mock('../storage/StorageService'); jest.mock('../network/NetworkService'); +jest.mock('../walletConnect/WalletConnectService'); jest.mock('@avalabs/core-wallets-sdk'); jest.mock('tsyringe', () => { const tsyringe = jest.requireActual('tsyringe'); @@ -477,7 +478,7 @@ describe('src/background/services/secrets/SecretsService.ts', () => { }); }); - it('attaches the account object to the result', async () => { + it.only('attaches the account object to the result', async () => { mockMnemonicWallet(); const result = await secretsService.getActiveAccountSecrets( activeAccountData diff --git a/src/background/services/secrets/SecretsService.ts b/src/background/services/secrets/SecretsService.ts index c8926d48..0c34580e 100644 --- a/src/background/services/secrets/SecretsService.ts +++ b/src/background/services/secrets/SecretsService.ts @@ -450,7 +450,6 @@ export class SecretsService { const walletKeys = await this.storageService.load( WALLET_STORAGE_KEY ); - console.log('walletKeys: ', walletKeys); if (!walletKeys && strict) { throw new Error('Wallet is not initialized'); diff --git a/src/background/services/seedless/handlers/updateSignerToken.test.ts b/src/background/services/seedless/handlers/updateSignerToken.test.ts index 31887906..82898ca8 100644 --- a/src/background/services/seedless/handlers/updateSignerToken.test.ts +++ b/src/background/services/seedless/handlers/updateSignerToken.test.ts @@ -4,10 +4,14 @@ import { SecretsService } from '../../secrets/SecretsService'; import { SecretType } from '../../secrets/models'; import { buildRpcCall } from '@src/tests/test-utils'; import { AccountsService } from '../../accounts/AccountsService'; +import { Account } from '../../accounts/models'; describe('src/background/services/seedless/handlers/updateSignerToken', () => { let secretsService; - let accountsService; + + const accountsService: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; beforeEach(() => { jest.resetAllMocks(); @@ -18,15 +22,6 @@ describe('src/background/services/seedless/handlers/updateSignerToken', () => { }), updateSecrets: jest.fn().mockResolvedValue('walletId'), } as any); - accountsService = new AccountsService( - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any - ); }); it('returns error when token is missing', async () => { diff --git a/src/background/services/wallet/WalletService.test.ts b/src/background/services/wallet/WalletService.test.ts index e4ee7e3a..db1673b9 100644 --- a/src/background/services/wallet/WalletService.test.ts +++ b/src/background/services/wallet/WalletService.test.ts @@ -81,7 +81,9 @@ describe('background/services/wallet/WalletService.ts', () => { let walletConnectService: WalletConnectService; let fireblocksService: FireblocksService; let secretsService: jest.Mocked; - let accountsService: AccountsService; + const accountsService: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; const privateKeyMock = '4ae3e293d0161fa90bfbf51028ceb1e51fe70bc6167afe4e0fe0927d86555503'; @@ -243,15 +245,7 @@ describe('background/services/wallet/WalletService.ts', () => { networkService = new NetworkService({} as any, {} as any); ledgerService = new LedgerService(); keystoneService = new KeystoneService(); - accountsService = new AccountsService( - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any - ); + walletConnectService = new WalletConnectService( new WalletConnectStorage({} as any) ); diff --git a/src/background/services/wallet/handlers/getUnencryptedMnemonic.test.ts b/src/background/services/wallet/handlers/getUnencryptedMnemonic.test.ts index 15885951..2d1f632c 100644 --- a/src/background/services/wallet/handlers/getUnencryptedMnemonic.test.ts +++ b/src/background/services/wallet/handlers/getUnencryptedMnemonic.test.ts @@ -4,6 +4,7 @@ import { SecretType } from '../../secrets/models'; import { SecretsService } from '../../secrets/SecretsService'; import { GetUnencryptedMnemonicHandler } from './getUnencryptedMnemonic'; import { AccountsService } from '../../accounts/AccountsService'; +import { Account } from '../../accounts/models'; describe('src/background/services/wallet/handlers/getUnencryptedMnemonic.ts', () => { const lockService: jest.Mocked = { @@ -12,15 +13,10 @@ describe('src/background/services/wallet/handlers/getUnencryptedMnemonic.ts', () const secretsService: jest.Mocked = { getActiveAccountSecrets: jest.fn(), } as any; - const accountsService = new AccountsService( - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any, - {} as any - ); + + const accountsService: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; const buildHandler = () => new GetUnencryptedMnemonicHandler( diff --git a/src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.test.ts b/src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.test.ts index f9bcc348..96b4adeb 100644 --- a/src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.test.ts +++ b/src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.test.ts @@ -4,7 +4,7 @@ import { } from '@avalabs/core-wallets-sdk'; import { ExtensionRequest } from '@src/background/connections/extensionConnection/models'; import { networks } from 'bitcoinjs-lib'; -import { AccountType } from '../../accounts/models'; +import { Account, AccountType } from '../../accounts/models'; import { AccountWithSecrets, SecretType } from '../../secrets/models'; import { SecretsService } from '../../secrets/SecretsService'; import { StoreBtcWalletPolicyDetails } from './storeBtcWalletPolicyDetails'; @@ -29,7 +29,9 @@ describe('src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.ts isMainnet: () => false, } as any; - const accountsServiceMock = jest.mocked({} as unknown as AccountsService); + const accountsServiceMock: jest.Mocked = { + activeAccount: {} as unknown as Account, + } as any; beforeEach(() => { jest.resetAllMocks(); @@ -155,7 +157,8 @@ describe('src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.ts 'masterFingerprint', 'hmacHex', 'name', - 'wallet-id' + 'wallet-id', + {} ); expect(result).toStrictEqual({ @@ -199,7 +202,8 @@ describe('src/background/services/wallet/handlers/storeBtcWalletPolicyDetails.ts 'masterFingerprint', 'hmacHex', 'name', - 'wallet-id' + 'wallet-id', + {} ); expect(result).toStrictEqual({