11/// <reference path="../index.d.ts" />
22import { renderHook , act } from '@testing-library/react-hooks'
3- import { createStore , useModel } from '../../src'
3+ import { createStore , useModel , Model } from '../../src'
44
55describe ( 'lane model' , ( ) => {
66 test ( 'single model' , async ( ) => {
@@ -14,16 +14,49 @@ describe('lane model', () => {
1414 renderTimes += 1
1515 return { renderTimes, count, setCount }
1616 } )
17- await act ( async ( ) => {
17+
18+ act ( ( ) => {
19+ expect ( result . current . renderTimes ) . toEqual ( 1 )
20+ expect ( result . current . count ) . toBe ( 1 )
21+ } )
22+
23+ act ( ( ) => {
24+ result . current . setCount ( 5 )
25+ } )
26+
27+ act ( ( ) => {
28+ expect ( renderTimes ) . toEqual ( 2 )
29+ expect ( result . current . count ) . toBe ( 5 )
30+ } )
31+ } )
32+
33+ test ( 'create store with namespace' , async ( ) => {
34+ const { useStore } = Model ( { } )
35+ createStore ( 'Shared' , ( ) => {
36+ const [ count , setCount ] = useModel ( 1 )
37+ return { count, setCount }
38+ } )
39+
40+ let renderTimes = 0
41+ const { result } = renderHook ( ( ) => {
42+ // @ts -ignore
43+ const { count, setCount } = useStore ( 'Shared' )
44+ console . group ( 'count: ' , count )
45+ console . group ( 'setCount: ' , setCount )
46+ renderTimes += 1
47+ return { renderTimes, count, setCount }
48+ } )
49+ act ( ( ) => {
1850 expect ( renderTimes ) . toEqual ( 1 )
1951 expect ( result . current . count ) . toBe ( 1 )
2052 } )
2153
22- await act ( async ( ) => {
23- await result . current . setCount ( 5 )
54+ act ( ( ) => {
55+ // @ts -ignore
56+ result . current . setCount ( 5 )
2457 } )
2558
26- await act ( ( ) => {
59+ act ( ( ) => {
2760 expect ( renderTimes ) . toEqual ( 2 )
2861 expect ( result . current . count ) . toBe ( 5 )
2962 } )
@@ -40,16 +73,17 @@ describe('lane model', () => {
4073 renderTimes += 1
4174 return { renderTimes, count, setCount }
4275 } )
43- await act ( async ( ) => {
76+
77+ act ( ( ) => {
4478 expect ( renderTimes ) . toEqual ( 1 )
4579 expect ( result . current . count ) . toBe ( 1 )
4680 } )
4781
48- await act ( async ( ) => {
49- await result . current . setCount ( ( count ) => count + 1 )
82+ act ( ( ) => {
83+ result . current . setCount ( ( count ) => count + 1 )
5084 } )
5185
52- await act ( ( ) => {
86+ act ( ( ) => {
5387 expect ( renderTimes ) . toEqual ( 2 )
5488 expect ( result . current . count ) . toBe ( 2 )
5589 } )
@@ -67,25 +101,25 @@ describe('lane model', () => {
67101 renderTimes += 1
68102 return { renderTimes, count, setCount }
69103 } )
70- await act ( async ( ) => {
104+ act ( ( ) => {
71105 expect ( renderTimes ) . toEqual ( 1 )
72106 expect ( result . current . count ) . toBe ( true )
73107 } )
74108
75- await act ( async ( ) => {
76- await result . current . setCount ( false )
109+ act ( ( ) => {
110+ result . current . setCount ( false )
77111 } )
78112
79- await act ( ( ) => {
113+ act ( ( ) => {
80114 expect ( renderTimes ) . toEqual ( 2 )
81115 expect ( result . current . count ) . toBe ( false )
82116 } )
83117
84- await act ( ( ) => {
118+ act ( ( ) => {
85119 rerender ( )
86120 } )
87121
88- await act ( ( ) => {
122+ act ( ( ) => {
89123 expect ( renderTimes ) . toEqual ( 3 )
90124 expect ( result . current . count ) . toBe ( false )
91125 } )
@@ -103,26 +137,26 @@ describe('lane model', () => {
103137 renderTimes += 1
104138 return { renderTimes, count, setCount, name, setName }
105139 } )
106- await act ( async ( ) => {
140+ act ( ( ) => {
107141 expect ( renderTimes ) . toEqual ( 1 )
108142 expect ( result . current . count ) . toBe ( 1 )
109143 } )
110144
111- await act ( async ( ) => {
112- await result . current . setCount ( 5 )
145+ act ( ( ) => {
146+ result . current . setCount ( 5 )
113147 } )
114148
115- await act ( ( ) => {
149+ act ( ( ) => {
116150 expect ( renderTimes ) . toEqual ( 2 )
117151 expect ( result . current . count ) . toBe ( 5 )
118152 expect ( result . current . name ) . toBe ( 'Jane' )
119153 } )
120154
121- await act ( async ( ) => {
122- await result . current . setName ( 'Bob' )
155+ act ( ( ) => {
156+ result . current . setName ( 'Bob' )
123157 } )
124158
125- await act ( ( ) => {
159+ act ( ( ) => {
126160 expect ( renderTimes ) . toEqual ( 3 )
127161 expect ( result . current . name ) . toBe ( 'Bob' )
128162 expect ( result . current . count ) . toBe ( 5 )
@@ -147,26 +181,27 @@ describe('lane model', () => {
147181 renderTimes += 1
148182 return { renderTimes, count, setCount, name, setName }
149183 } )
150- await act ( async ( ) => {
184+
185+ act ( ( ) => {
151186 expect ( renderTimes ) . toEqual ( 1 )
152187 expect ( result . current . count ) . toBe ( 1 )
153188 } )
154189
155- await act ( async ( ) => {
156- await result . current . setCount ( 5 )
190+ act ( ( ) => {
191+ result . current . setCount ( 5 )
157192 } )
158193
159- await act ( ( ) => {
194+ act ( ( ) => {
160195 expect ( renderTimes ) . toEqual ( 2 )
161196 expect ( result . current . count ) . toBe ( 5 )
162197 expect ( result . current . name ) . toBe ( 'Jane' )
163198 } )
164199
165- await act ( async ( ) => {
166- await result . current . setName ( 'Bob' )
200+ act ( ( ) => {
201+ result . current . setName ( 'Bob' )
167202 } )
168203
169- await act ( ( ) => {
204+ act ( ( ) => {
170205 expect ( renderTimes ) . toEqual ( 3 )
171206 expect ( result . current . name ) . toBe ( 'Bob' )
172207 expect ( result . current . count ) . toBe ( 5 )
@@ -190,16 +225,16 @@ describe('lane model', () => {
190225 renderTimes += 1
191226 return { renderTimes, count, setCount }
192227 } )
193- await act ( async ( ) => {
228+ act ( ( ) => {
194229 expect ( renderTimes ) . toEqual ( 2 )
195230 expect ( mirrorResult . current . count ) . toBe ( 1 )
196231 } )
197232
198- await act ( async ( ) => {
199- await result . current . setCount ( 5 )
233+ act ( ( ) => {
234+ result . current . setCount ( 5 )
200235 } )
201236
202- await act ( ( ) => {
237+ act ( ( ) => {
203238 expect ( renderTimes ) . toEqual ( 4 )
204239 expect ( mirrorResult . current . count ) . toBe ( 5 )
205240 } )
@@ -234,46 +269,46 @@ describe('lane model', () => {
234269 renderTimes += 1
235270 return { renderTimes, data, setName, name, status, set }
236271 } )
237- await act ( async ( ) => {
272+ act ( ( ) => {
238273 expect ( renderTimes ) . toEqual ( 2 )
239274 expect ( mirrorResult . current . name ) . toBe ( 'Jane' )
240275 } )
241276
242- await act ( async ( ) => {
243- await result . current . setData ( { status : 'SUCCESS' } )
277+ act ( ( ) => {
278+ result . current . setData ( { status : 'SUCCESS' } )
244279 } )
245280
246281 // Both component will rerender
247282 // TODO: Only rerender second FC
248- await act ( ( ) => {
283+ act ( ( ) => {
249284 expect ( renderTimes ) . toEqual ( 4 )
250285 expect ( mirrorResult . current . data ) . toEqual ( { status : 'SUCCESS' } )
251286 } )
252287
253- await act ( async ( ) => {
254- await mirrorResult . current . setName ( 'Bob' )
288+ act ( ( ) => {
289+ mirrorResult . current . setName ( 'Bob' )
255290 } )
256291
257- await act ( ( ) => {
292+ act ( ( ) => {
258293 expect ( renderTimes ) . toEqual ( 6 )
259294 expect ( mirrorResult . current . name ) . toBe ( 'Bob' )
260295 expect ( mirrorResult . current . status ) . toBe ( false )
261296 } )
262297
263- await act ( async ( ) => {
264- await mirrorResult . current . set ( true )
298+ act ( ( ) => {
299+ mirrorResult . current . set ( true )
265300 } )
266301
267- await act ( ( ) => {
302+ act ( ( ) => {
268303 expect ( renderTimes ) . toEqual ( 7 )
269304 expect ( mirrorResult . current . status ) . toBe ( true )
270305 } )
271306
272- await act ( async ( ) => {
273- await mirrorResult . current . setName ( 'Jane' )
307+ act ( ( ) => {
308+ mirrorResult . current . setName ( 'Jane' )
274309 } )
275310
276- await act ( ( ) => {
311+ act ( ( ) => {
277312 expect ( renderTimes ) . toEqual ( 9 )
278313 expect ( mirrorResult . current . name ) . toBe ( 'Jane' )
279314 expect ( mirrorResult . current . status ) . toBe ( true )
0 commit comments