1+ import { getSelectedAccounts } from '@metamask/keyring-snap-sdk' ;
2+ import type { SnapsProvider } from '@metamask/snaps-sdk' ;
13import type { JsonRpcRequest } from '@metamask/utils' ;
24import { mock } from 'jest-mock-extended' ;
35
46import type { BitcoinAccount , SnapClient } from '../entities' ;
57import type { SendFlowUseCases , AccountUseCases } from '../use-cases' ;
68import { CronHandler , CronMethod } from './CronHandler' ;
79
10+ jest . mock ( '@metamask/keyring-snap-sdk' , ( ) => ( {
11+ getSelectedAccounts : jest . fn ( ) ,
12+ } ) ) ;
13+
814describe ( 'CronHandler' , ( ) => {
915 const mockSendFlowUseCases = mock < SendFlowUseCases > ( ) ;
1016 const mockAccountUseCases = mock < AccountUseCases > ( ) ;
1117 const mockSnapClient = mock < SnapClient > ( ) ;
18+ const mockSnap = mock < SnapsProvider > ( ) ;
1219
1320 const handler = new CronHandler (
1421 mockAccountUseCases ,
1522 mockSendFlowUseCases ,
1623 mockSnapClient ,
24+ mockSnap ,
1725 ) ;
1826
1927 beforeEach ( ( ) => {
28+ jest . clearAllMocks ( ) ;
2029 mockSnapClient . getClientStatus . mockResolvedValue ( {
2130 active : true ,
2231 locked : false ,
2332 } ) ;
2433 } ) ;
2534
2635 describe ( 'synchronizeAccounts' , ( ) => {
27- const mockAccounts = [ mock < BitcoinAccount > ( ) , mock < BitcoinAccount > ( ) ] ;
36+ const mockAccounts = [
37+ mock < BitcoinAccount > ( { id : 'account-1' } ) ,
38+ mock < BitcoinAccount > ( { id : 'account-2' } ) ,
39+ ] ;
2840 const request = { method : 'synchronizeAccounts' } as JsonRpcRequest ;
2941
30- it ( 'synchronizes all accounts' , async ( ) => {
42+ it ( 'synchronizes all selected accounts' , async ( ) => {
43+ ( getSelectedAccounts as jest . Mock ) . mockResolvedValue ( [
44+ 'account-1' ,
45+ 'account-2' ,
46+ ] ) ;
3147 mockAccountUseCases . list . mockResolvedValue ( mockAccounts ) ;
3248
3349 await handler . route ( request ) ;
@@ -41,6 +57,7 @@ describe('CronHandler', () => {
4157
4258 it ( 'propagates errors from list' , async ( ) => {
4359 const error = new Error ( ) ;
60+ ( getSelectedAccounts as jest . Mock ) . mockResolvedValue ( [ 'account-1' ] ) ;
4461 mockAccountUseCases . list . mockRejectedValue ( error ) ;
4562
4663 await expect ( handler . route ( request ) ) . rejects . toThrow ( error ) ;
@@ -57,6 +74,10 @@ describe('CronHandler', () => {
5774 } ) ;
5875
5976 it ( 'throws error if some account fails to synchronize' , async ( ) => {
77+ ( getSelectedAccounts as jest . Mock ) . mockResolvedValue ( [
78+ 'account-1' ,
79+ 'account-2' ,
80+ ] ) ;
6081 mockAccountUseCases . list . mockResolvedValue ( mockAccounts ) ;
6182 mockAccountUseCases . synchronize . mockRejectedValue ( new Error ( 'error' ) ) ;
6283
0 commit comments