@@ -5,6 +5,7 @@ import { usePollBlock } from "./usePollBlock";
55import { usePollConversionRate } from "./usePollConversionRate" ;
66import { usePollMultisigs } from "./usePollMultisigs" ;
77import { usePollPendingOperations } from "./usePollPendingOperations" ;
8+ import { usePollProtocolSettings } from "./usePollProtocolSettings" ;
89import { usePollTokenBalances } from "./usePollTokenBalances" ;
910import { usePollUnstakeRequests } from "./usePollUnstakeRequests" ;
1011import { renderHook } from "../../mocks/testUtils" ;
@@ -34,107 +35,73 @@ const usePollTokenBalancesMock = jest.mocked(usePollTokenBalances);
3435jest . mock ( "./usePollUnstakeRequests" ) ;
3536const usePollUnstakeRequestsMock = jest . mocked ( usePollUnstakeRequests ) ;
3637
38+ jest . mock ( "./usePollProtocolSettings" ) ;
39+ const usePollProtocolSettingsMock = jest . mocked ( usePollProtocolSettings ) ;
40+
3741describe ( "useDataPolling" , ( ) => {
3842 describe ( "isLoading" , ( ) => {
3943 it . each ( [
44+ { hookName : "usePollAccountStates" , mock : usePollAccountStatesMock } ,
45+ { hookName : "usePollBakers" , mock : usePollBakersMock } ,
46+ { hookName : "usePollBlock" , mock : usePollBlockMock } ,
47+ { hookName : "usePollConversionRate" , mock : usePollConversionRateMock } ,
4048 { hookName : "usePollMultisigs" , mock : usePollMultisigsMock } ,
4149 { hookName : "usePollPendingOperations" , mock : usePollPendingOperationsMock } ,
42- { hookName : "usePollAccountStates " , mock : usePollAccountStatesMock } ,
50+ { hookName : "usePollProtocolSettings " , mock : usePollProtocolSettingsMock } ,
4351 { hookName : "usePollTokenBalances" , mock : usePollTokenBalancesMock } ,
4452 { hookName : "usePollUnstakeRequests" , mock : usePollUnstakeRequestsMock } ,
4553 ] ) ( "is true when the data is being fetched by $hookName" , ( { mock } ) => {
4654 [
55+ usePollAccountStatesMock ,
4756 usePollBakersMock ,
4857 usePollBlockMock ,
4958 usePollConversionRateMock ,
5059 usePollMultisigsMock ,
5160 usePollPendingOperationsMock ,
52- usePollAccountStatesMock ,
61+ usePollProtocolSettingsMock ,
5362 usePollTokenBalancesMock ,
5463 usePollUnstakeRequestsMock ,
5564 ] . forEach ( hookMock => {
56- if ( hookMock === mock ) {
57- // @ts -expect-error 2590
58- hookMock . mockReturnValue ( {
59- isFetching : true ,
60- dataUpdatedAt : 1 ,
61- } ) ;
62- } else {
63- hookMock . mockReturnValue ( {
64- isFetching : false ,
65- dataUpdatedAt : 1 ,
66- } ) ;
67- }
65+ // @ts -expect-error TS2590
66+ hookMock . mockReturnValue ( {
67+ isFetching : hookMock === mock ,
68+ dataUpdatedAt : 1 ,
69+ } ) ;
6870 } ) ;
6971
7072 renderHook ( ( ) => useDataPolling ( ) ) ;
7173
7274 expect ( store . getState ( ) . assets . isLoading ) . toBe ( true ) ;
7375 } ) ;
76+ } ) ;
7477
78+ describe ( "lastTimeUpdated" , ( ) => {
7579 it . each ( [
80+ { hookName : "usePollAccountStates" , mock : usePollAccountStatesMock } ,
7681 { hookName : "usePollBakers" , mock : usePollBakersMock } ,
7782 { hookName : "usePollBlock" , mock : usePollBlockMock } ,
7883 { hookName : "usePollConversionRate" , mock : usePollConversionRateMock } ,
79- ] ) ( "is not affected by $hookName" , ( { mock } ) => {
80- [
81- usePollBakersMock ,
82- usePollBlockMock ,
83- usePollConversionRateMock ,
84- usePollMultisigsMock ,
85- usePollPendingOperationsMock ,
86- usePollAccountStatesMock ,
87- usePollTokenBalancesMock ,
88- usePollUnstakeRequestsMock ,
89- ] . forEach ( hookMock => {
90- if ( hookMock === mock ) {
91- hookMock . mockReturnValue ( {
92- isFetching : true ,
93- dataUpdatedAt : 1 ,
94- } ) ;
95- } else {
96- hookMock . mockReturnValue ( {
97- isFetching : false ,
98- dataUpdatedAt : 1 ,
99- } ) ;
100- }
101- } ) ;
102-
103- renderHook ( ( ) => useDataPolling ( ) ) ;
104-
105- expect ( store . getState ( ) . assets . isLoading ) . toBe ( false ) ;
106- } ) ;
107- } ) ;
108-
109- describe ( "lastUpdatedAt" , ( ) => {
110- it . each ( [
11184 { hookName : "usePollMultisigs" , mock : usePollMultisigsMock } ,
11285 { hookName : "usePollPendingOperations" , mock : usePollPendingOperationsMock } ,
113- { hookName : "usePollAccountStates " , mock : usePollAccountStatesMock } ,
86+ { hookName : "usePollProtocolSettings " , mock : usePollProtocolSettingsMock } ,
11487 { hookName : "usePollTokenBalances" , mock : usePollTokenBalancesMock } ,
11588 { hookName : "usePollUnstakeRequests" , mock : usePollUnstakeRequestsMock } ,
116- ] ) ( "is true when the data is being fetched by $hookName" , ( { mock } ) => {
89+ ] ) ( "is set to the lastUpdatedAt of the $hookName hook if it is the latest one " , ( { mock } ) => {
11790 [
91+ usePollAccountStatesMock ,
11892 usePollBakersMock ,
11993 usePollBlockMock ,
12094 usePollConversionRateMock ,
12195 usePollMultisigsMock ,
12296 usePollPendingOperationsMock ,
123- usePollAccountStatesMock ,
97+ usePollProtocolSettingsMock ,
12498 usePollTokenBalancesMock ,
12599 usePollUnstakeRequestsMock ,
126100 ] . forEach ( hookMock => {
127- if ( hookMock === mock ) {
128- hookMock . mockReturnValue ( {
129- isFetching : false ,
130- dataUpdatedAt : 1000 ,
131- } ) ;
132- } else {
133- hookMock . mockReturnValue ( {
134- isFetching : false ,
135- dataUpdatedAt : 1 ,
136- } ) ;
137- }
101+ hookMock . mockReturnValue ( {
102+ isFetching : false ,
103+ dataUpdatedAt : hookMock === mock ? 1000 : 1 ,
104+ } ) ;
138105 } ) ;
139106
140107 renderHook ( ( ) => useDataPolling ( ) ) ;
@@ -143,36 +110,36 @@ describe("useDataPolling", () => {
143110 } ) ;
144111
145112 it . each ( [
113+ { hookName : "usePollAccountStates" , mock : usePollAccountStatesMock } ,
146114 { hookName : "usePollBakers" , mock : usePollBakersMock } ,
147115 { hookName : "usePollBlock" , mock : usePollBlockMock } ,
148116 { hookName : "usePollConversionRate" , mock : usePollConversionRateMock } ,
149- ] ) ( "is not affected by $hookName" , ( { mock } ) => {
117+ { hookName : "usePollMultisigs" , mock : usePollMultisigsMock } ,
118+ { hookName : "usePollPendingOperations" , mock : usePollPendingOperationsMock } ,
119+ { hookName : "usePollProtocolSettings" , mock : usePollProtocolSettingsMock } ,
120+ { hookName : "usePollTokenBalances" , mock : usePollTokenBalancesMock } ,
121+ { hookName : "usePollUnstakeRequests" , mock : usePollUnstakeRequestsMock } ,
122+ ] ) ( "does not change lastTimeUpdated if $hookName is loading" , ( { mock } ) => {
150123 [
151- usePollMultisigsMock ,
152- usePollPendingOperationsMock ,
153124 usePollAccountStatesMock ,
154- usePollTokenBalancesMock ,
155125 usePollBakersMock ,
156126 usePollBlockMock ,
157127 usePollConversionRateMock ,
128+ usePollMultisigsMock ,
129+ usePollPendingOperationsMock ,
130+ usePollProtocolSettingsMock ,
131+ usePollTokenBalancesMock ,
158132 usePollUnstakeRequestsMock ,
159133 ] . forEach ( hookMock => {
160- if ( hookMock === mock ) {
161- hookMock . mockReturnValue ( {
162- isFetching : false ,
163- dataUpdatedAt : 5 ,
164- } ) ;
165- } else {
166- hookMock . mockReturnValue ( {
167- isFetching : false ,
168- dataUpdatedAt : 1 ,
169- } ) ;
170- }
134+ hookMock . mockReturnValue ( {
135+ isFetching : hookMock === mock ,
136+ dataUpdatedAt : 1000 ,
137+ } ) ;
171138 } ) ;
172139
173140 renderHook ( ( ) => useDataPolling ( ) ) ;
174141
175- expect ( store . getState ( ) . assets . lastTimeUpdated ) . toBe ( "Thu, 01 Jan 1970 00:00:00 GMT" ) ;
142+ expect ( store . getState ( ) . assets . lastTimeUpdated ) . toBeNull ( ) ;
176143 } ) ;
177144 } ) ;
178145} ) ;
0 commit comments