11import { AddressTracker , createAddressTracker } from '../../src' ;
2+ import { AddressType , GroupedAddress , KeyRole } from '@cardano-sdk/key-management' ;
23import { Cardano } from '@cardano-sdk/core' ;
34import { EMPTY , firstValueFrom , of } from 'rxjs' ;
4- import { GroupedAddress } from '@cardano-sdk/key-management' ;
55import { WalletStores } from '../../src/persistence' ;
6+ import { address_0_0 , address_0_5 , address_5_0 , rewardAccount_0 , rewardAccount_5 } from './ChangeAddress/testData' ;
67import { createTestScheduler , logger } from '@cardano-sdk/util-dev' ;
8+ import { sortAddresses } from '../../src/services/util/sortAddresses' ;
79
810describe ( 'AddressTracker' , ( ) => {
911 let store : jest . Mocked < WalletStores [ 'addresses' ] > ;
1012 let addressTracker : AddressTracker ;
11- const discoveredAddresses = [ { address : 'addr1' as Cardano . PaymentAddress } as GroupedAddress ] ;
13+ const discoveredAddresses = [
14+ {
15+ accountIndex : 0 ,
16+ address : address_5_0 ,
17+ index : 5 ,
18+ networkId : Cardano . NetworkId . Testnet ,
19+ rewardAccount : rewardAccount_0 ,
20+ stakeKeyDerivationPath : { index : 0 , role : KeyRole . Stake } ,
21+ type : AddressType . External
22+ } ,
23+ {
24+ accountIndex : 0 ,
25+ address : address_0_5 ,
26+ index : 0 ,
27+ networkId : Cardano . NetworkId . Testnet ,
28+ rewardAccount : rewardAccount_5 ,
29+ stakeKeyDerivationPath : { index : 5 , role : KeyRole . Stake } ,
30+ type : AddressType . External
31+ } ,
32+ {
33+ accountIndex : 0 ,
34+ address : address_0_0 ,
35+ index : 0 ,
36+ networkId : Cardano . NetworkId . Testnet ,
37+ rewardAccount : rewardAccount_0 ,
38+ stakeKeyDerivationPath : { index : 0 , role : KeyRole . Stake } ,
39+ type : AddressType . External
40+ }
41+ ] ;
1242
1343 beforeEach ( ( ) => {
1444 store = {
@@ -19,6 +49,8 @@ describe('AddressTracker', () => {
1949 } ;
2050 } ) ;
2151
52+ const sortedDiscoveredAddresses = sortAddresses ( discoveredAddresses ) ;
53+
2254 afterEach ( ( ) => addressTracker . shutdown ( ) ) ;
2355
2456 describe ( 'load' , ( ) => {
@@ -31,7 +63,7 @@ describe('AddressTracker', () => {
3163 logger,
3264 store
3365 } ) ;
34- expectObservable ( addressTracker . addresses$ ) . toBe ( 'a' , { a : discoveredAddresses } ) ;
66+ expectObservable ( addressTracker . addresses$ ) . toBe ( 'a' , { a : sortedDiscoveredAddresses } ) ;
3567 expectSubscriptions ( addressDiscovery$ . subscriptions ) . toBe ( '^' ) ;
3668 flush ( ) ;
3769 expect ( store . get ) . toBeCalledTimes ( 1 ) ;
@@ -70,12 +102,12 @@ describe('AddressTracker', () => {
70102 logger,
71103 store
72104 } ) ;
73- await expect ( firstValueFrom ( addressTracker . addresses$ ) ) . resolves . toEqual ( discoveredAddresses ) ;
105+ await expect ( firstValueFrom ( addressTracker . addresses$ ) ) . resolves . toEqual ( sortedDiscoveredAddresses ) ;
74106 const newAddress = { address : 'addr2' as Cardano . PaymentAddress } as GroupedAddress ;
75107 const combinedAddresses = [ ...discoveredAddresses , newAddress ] ;
76108
77109 await expect ( firstValueFrom ( addressTracker . addAddresses ( [ newAddress ] ) ) ) . resolves . toEqual ( combinedAddresses ) ;
78- await expect ( firstValueFrom ( addressTracker . addresses$ ) ) . resolves . toEqual ( combinedAddresses ) ;
110+ await expect ( firstValueFrom ( addressTracker . addresses$ ) ) . resolves . toEqual ( sortAddresses ( combinedAddresses ) ) ;
79111 expect ( store . set ) . toBeCalledTimes ( 2 ) ;
80112 expect ( store . set ) . toBeCalledWith ( combinedAddresses ) ;
81113 } ) ;
0 commit comments