File tree 2 files changed +66
-1
lines changed
2 files changed +66
-1
lines changed Original file line number Diff line number Diff line change @@ -134,5 +134,5 @@ describe('getStore', () => {
134
134
expect ( screen . getByTestId ( 'items' ) . textContent ) . toContain ( 'firstElement' ) ;
135
135
act ( ( ) => push ( items , 'secondElement' ) ) ;
136
136
expect ( screen . getByTestId ( 'items' ) . textContent ) . toContain ( 'firstElement,secondElement' ) ;
137
- } )
137
+ } ) ;
138
138
} ) ;
Original file line number Diff line number Diff line change
1
+ import { render } from '@testing-library/react' ;
2
+ import { useEffect , useState } from 'react' ;
3
+
4
+ import '@babel/polyfill' ;
5
+
6
+ import createStore from '../package/index' ;
7
+
8
+ describe ( 'Issue 88' , ( ) => {
9
+ it ( 'should subscribe even if initially not rendered' , ( ) => {
10
+ const track = jest . fn ( ) ;
11
+
12
+ const initialStore = {
13
+ number : 0 ,
14
+ } ;
15
+ const { useStore} = createStore ( initialStore ) ;
16
+
17
+ const AA = ( ) => {
18
+ const [ number ] = useStore . number ( ) ;
19
+ track ( `AA number: ${ number } ` ) ;
20
+
21
+ return number ;
22
+ } ;
23
+
24
+ const CC = ( ) => {
25
+ const [ number , setNumber ] = useStore . number ( ) ;
26
+ track ( `CC number: ${ number } ` ) ;
27
+ if ( ! number ) {
28
+ setNumber ( ( prev ) => prev + 1 ) ;
29
+ }
30
+
31
+ return 'c' ;
32
+ } ;
33
+
34
+ function App ( ) {
35
+ const [ show , setShow ] = useState ( false ) ;
36
+ track ( `App show: ${ show } ` ) ;
37
+ useEffect ( ( ) => {
38
+ setShow ( true ) ;
39
+ } , [ ] ) ;
40
+
41
+ return (
42
+ < div >
43
+ { show && (
44
+ < >
45
+ < AA />
46
+ < CC />
47
+ </ >
48
+ ) }
49
+ </ div >
50
+ ) ;
51
+ }
52
+
53
+ render ( < App /> ) ;
54
+
55
+ console . log ( track . mock . calls ) ;
56
+ expect ( track . mock . calls ) . toContain ( [
57
+ [ 'App show: false' ] ,
58
+ [ 'App show: true' ] ,
59
+ [ 'AA number: 0' ] ,
60
+ [ 'CC number: 0' ] ,
61
+ [ 'AA number: 1' ] ,
62
+ [ 'CC number: 1' ] ,
63
+ ] ) ;
64
+ } ) ;
65
+ } ) ;
You can’t perform that action at this time.
0 commit comments