Skip to content

Commit ca02e47

Browse files
committed
Changed onNetworkChange to use messaging system
1 parent 1fbe13a commit ca02e47

7 files changed

+234
-121
lines changed

src/assets/TokenDetectionController.test.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,20 @@ const sampleTokenB: Token = {
8383
aggregators: formattedSampleAggregators,
8484
};
8585

86-
type MainControllerMessenger = ControllerMessenger<GetTokenListState, TokenListStateChange | NetworkControllerProviderChangeEvent | NetworkControllerStateChangeEvent>;
86+
type MainControllerMessenger = ControllerMessenger<
87+
GetTokenListState,
88+
| TokenListStateChange
89+
| NetworkControllerProviderChangeEvent
90+
| NetworkControllerStateChangeEvent
91+
>;
8792

8893
const getControllerMessenger = (): MainControllerMessenger => {
8994
return new ControllerMessenger();
9095
};
9196

92-
const setupNetworkController = (controllerMessenger: MainControllerMessenger) => {
97+
const setupNetworkController = (
98+
controllerMessenger: MainControllerMessenger,
99+
) => {
93100
const networkMessenger = controllerMessenger.getRestricted({
94101
name: 'NetworkController',
95102
allowedEvents: [
@@ -107,13 +114,15 @@ const setupNetworkController = (controllerMessenger: MainControllerMessenger) =>
107114
return { network, networkMessenger };
108115
};
109116

110-
const setupTokenListController = (controllerMessenger: MainControllerMessenger) =>{
117+
const setupTokenListController = (
118+
controllerMessenger: MainControllerMessenger,
119+
) => {
111120
const tokenListMessenger = controllerMessenger.getRestricted({
112121
name: 'TokenListController',
113122
allowedActions: [],
114123
allowedEvents: [
115124
'TokenListController:stateChange',
116-
'NetworkController:providerChange'
125+
'NetworkController:providerChange',
117126
],
118127
});
119128

@@ -124,7 +133,7 @@ const setupTokenListController = (controllerMessenger: MainControllerMessenger)
124133
});
125134

126135
return { tokenList, tokenListMessenger };
127-
}
136+
};
128137

129138
describe('TokenDetectionController', () => {
130139
let tokenDetection: TokenDetectionController;
@@ -172,7 +181,10 @@ describe('TokenDetectionController', () => {
172181
onNetworkStateChange: (listener) =>
173182
networkMessenger.subscribe('NetworkController:stateChange', listener),
174183
onTokenListStateChange: (listener) =>
175-
tokenListSetup.tokenListMessenger.subscribe(`TokenListController:stateChange`, listener),
184+
tokenListSetup.tokenListMessenger.subscribe(
185+
`TokenListController:stateChange`,
186+
listener,
187+
),
176188
getBalancesInSingleCall:
177189
getBalancesInSingleCall as unknown as AssetsContractController['getBalancesInSingleCall'],
178190
addDetectedTokens:
@@ -193,7 +205,9 @@ describe('TokenDetectionController', () => {
193205
sinon.restore();
194206
tokenDetection.stop();
195207
tokenList.destroy();
196-
controllerMessenger.clearEventSubscriptions('NetworkController:stateChange');
208+
controllerMessenger.clearEventSubscriptions(
209+
'NetworkController:stateChange',
210+
);
197211
});
198212

199213
it('should set default config', () => {

src/assets/TokenListController.test.ts

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -471,18 +471,21 @@ const expiredCacheExistingState: TokenListState = {
471471
preventPollingOnNetworkRestart: false,
472472
};
473473

474-
type MainControllerMessenger = ControllerMessenger<GetTokenListState, TokenListStateChange | NetworkControllerProviderChangeEvent>;
474+
type MainControllerMessenger = ControllerMessenger<
475+
GetTokenListState,
476+
TokenListStateChange | NetworkControllerProviderChangeEvent
477+
>;
475478

476479
const getControllerMessenger = (): MainControllerMessenger => {
477480
return new ControllerMessenger();
478481
};
479482

480-
const setupNetworkController = (controllerMessenger: MainControllerMessenger) => {
483+
const setupNetworkController = (
484+
controllerMessenger: MainControllerMessenger,
485+
) => {
481486
const networkMessenger = controllerMessenger.getRestricted({
482487
name: 'NetworkController',
483-
allowedEvents: [
484-
'NetworkController:providerChange',
485-
],
488+
allowedEvents: ['NetworkController:providerChange'],
486489
allowedActions: [],
487490
});
488491

@@ -494,23 +497,20 @@ const setupNetworkController = (controllerMessenger: MainControllerMessenger) =>
494497
return { network, networkMessenger };
495498
};
496499

497-
/**
498-
* Get a TokenListController restricted controller messenger.
499-
*
500-
* @returns A restricted controller messenger for the TokenListController.
501-
*/
502-
function getRestrictedMessenger(controllerMessenger: MainControllerMessenger) {
500+
const getRestrictedMessenger = (
501+
controllerMessenger: MainControllerMessenger,
502+
) => {
503503
const messenger = controllerMessenger.getRestricted({
504504
name,
505505
allowedActions: [],
506506
allowedEvents: [
507507
'TokenListController:stateChange',
508-
'NetworkController:providerChange'
508+
'NetworkController:providerChange',
509509
],
510510
});
511511

512512
return messenger;
513-
}
513+
};
514514

515515
describe('TokenListController', () => {
516516
afterEach(() => {
@@ -535,7 +535,9 @@ describe('TokenListController', () => {
535535
});
536536

537537
controller.destroy();
538-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
538+
controllerMessenger.clearEventSubscriptions(
539+
'NetworkController:providerChange',
540+
);
539541
});
540542

541543
it('should initialize with initial state', () => {
@@ -583,7 +585,9 @@ describe('TokenListController', () => {
583585
});
584586

585587
controller.destroy();
586-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
588+
controllerMessenger.clearEventSubscriptions(
589+
'NetworkController:providerChange',
590+
);
587591
});
588592

589593
it('should initiate without preventPollingOnNetworkRestart', async () => {
@@ -602,7 +606,9 @@ describe('TokenListController', () => {
602606
});
603607

604608
controller.destroy();
605-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
609+
controllerMessenger.clearEventSubscriptions(
610+
'NetworkController:providerChange',
611+
);
606612
});
607613

608614
it('should not poll before being started', async () => {
@@ -620,7 +626,9 @@ describe('TokenListController', () => {
620626
expect(controller.state.tokenList).toStrictEqual({});
621627

622628
controller.destroy();
623-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
629+
controllerMessenger.clearEventSubscriptions(
630+
'NetworkController:providerChange',
631+
);
624632
});
625633

626634
it('should poll and update rate in the right interval', async () => {
@@ -647,7 +655,9 @@ describe('TokenListController', () => {
647655
expect(tokenListMock.calledTwice).toBe(true);
648656

649657
controller.destroy();
650-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
658+
controllerMessenger.clearEventSubscriptions(
659+
'NetworkController:providerChange',
660+
);
651661
});
652662

653663
it('should not poll after being stopped', async () => {
@@ -676,7 +686,9 @@ describe('TokenListController', () => {
676686
expect(tokenListMock.calledTwice).toBe(false);
677687

678688
controller.destroy();
679-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
689+
controllerMessenger.clearEventSubscriptions(
690+
'NetworkController:providerChange',
691+
);
680692
});
681693

682694
it('should poll correctly after being started, stopped, and started again', async () => {
@@ -709,7 +721,9 @@ describe('TokenListController', () => {
709721
await new Promise<void>((resolve) => setTimeout(() => resolve(), 150));
710722
expect(tokenListMock.calledThrice).toBe(true);
711723
controller.destroy();
712-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
724+
controllerMessenger.clearEventSubscriptions(
725+
'NetworkController:providerChange',
726+
);
713727
});
714728

715729
it('should call fetchTokenList on network that supports token detection', async () => {
@@ -733,7 +747,9 @@ describe('TokenListController', () => {
733747
// called once upon initial start
734748
expect(tokenListMock.called).toBe(true);
735749
controller.destroy();
736-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
750+
controllerMessenger.clearEventSubscriptions(
751+
'NetworkController:providerChange',
752+
);
737753
});
738754

739755
it('should not call fetchTokenList on network that does not support token detection', async () => {
@@ -759,7 +775,9 @@ describe('TokenListController', () => {
759775

760776
controller.destroy();
761777
tokenListMock.restore();
762-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
778+
controllerMessenger.clearEventSubscriptions(
779+
'NetworkController:providerChange',
780+
);
763781
});
764782

765783
it('should update token list from api', async () => {
@@ -794,7 +812,9 @@ describe('TokenListController', () => {
794812
.timestamp,
795813
);
796814
controller.destroy();
797-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
815+
controllerMessenger.clearEventSubscriptions(
816+
'NetworkController:providerChange',
817+
);
798818
});
799819

800820
it('should update the cache before threshold time if the current data is undefined', async () => {
@@ -829,7 +849,9 @@ describe('TokenListController', () => {
829849
sampleSingleChainState.tokensChainsCache['1'].data,
830850
);
831851
controller.destroy();
832-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
852+
controllerMessenger.clearEventSubscriptions(
853+
'NetworkController:providerChange',
854+
);
833855
});
834856

835857
it('should update token list from cache before reaching the threshold time', async () => {
@@ -854,7 +876,9 @@ describe('TokenListController', () => {
854876
sampleSingleChainState.tokensChainsCache[NetworksChainId.mainnet].data,
855877
);
856878
controller.destroy();
857-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
879+
controllerMessenger.clearEventSubscriptions(
880+
'NetworkController:providerChange',
881+
);
858882
});
859883

860884
it('should update token list after removing data with duplicate symbols', async () => {
@@ -899,7 +923,9 @@ describe('TokenListController', () => {
899923
controller.state.tokensChainsCache[NetworksChainId.mainnet].data,
900924
).toStrictEqual(sampleWithDuplicateSymbolsTokensChainsCache);
901925
controller.destroy();
902-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
926+
controllerMessenger.clearEventSubscriptions(
927+
'NetworkController:providerChange',
928+
);
903929
});
904930

905931
it('should update token list after removing data less than 3 occurrences', async () => {
@@ -925,7 +951,9 @@ describe('TokenListController', () => {
925951
controller.state.tokensChainsCache[NetworksChainId.mainnet].data,
926952
).toStrictEqual(sampleWith3OrMoreOccurrences);
927953
controller.destroy();
928-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
954+
controllerMessenger.clearEventSubscriptions(
955+
'NetworkController:providerChange',
956+
);
929957
});
930958

931959
it('should update token list when the token property changes', async () => {
@@ -955,7 +983,9 @@ describe('TokenListController', () => {
955983
sampleSingleChainState.tokensChainsCache[NetworksChainId.mainnet].data,
956984
);
957985
controller.destroy();
958-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
986+
controllerMessenger.clearEventSubscriptions(
987+
'NetworkController:providerChange',
988+
);
959989
});
960990

961991
it('should update the cache when the timestamp expires', async () => {
@@ -988,7 +1018,9 @@ describe('TokenListController', () => {
9881018
sampleSingleChainState.tokensChainsCache[NetworksChainId.mainnet].data,
9891019
);
9901020
controller.destroy();
991-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
1021+
controllerMessenger.clearEventSubscriptions(
1022+
'NetworkController:providerChange',
1023+
);
9921024
});
9931025

9941026
it('should update token list when the chainId change', async () => {
@@ -1052,7 +1084,9 @@ describe('TokenListController', () => {
10521084
);
10531085

10541086
controller.destroy();
1055-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
1087+
controllerMessenger.clearEventSubscriptions(
1088+
'NetworkController:providerChange',
1089+
);
10561090
});
10571091

10581092
it('should clear the tokenList and tokensChainsCache', async () => {
@@ -1072,7 +1106,9 @@ describe('TokenListController', () => {
10721106
expect(controller.state.tokensChainsCache).toStrictEqual({});
10731107

10741108
controller.destroy();
1075-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
1109+
controllerMessenger.clearEventSubscriptions(
1110+
'NetworkController:providerChange',
1111+
);
10761112
});
10771113

10781114
it('should update preventPollingOnNetworkRestart and restart the polling on network restart', async () => {
@@ -1127,7 +1163,9 @@ describe('TokenListController', () => {
11271163
);
11281164
messenger.clearEventSubscriptions('TokenListController:stateChange');
11291165
controller.destroy();
1130-
controllerMessenger.clearEventSubscriptions('NetworkController:providerChange');
1166+
controllerMessenger.clearEventSubscriptions(
1167+
'NetworkController:providerChange',
1168+
);
11311169
resolve();
11321170
});
11331171

0 commit comments

Comments
 (0)