@@ -5,44 +5,32 @@ const StateContext = React.createContext()
5
5
6
6
const MyButton = ( ) => (
7
7
< StateContext . Consumer >
8
- { ( { handleToggle} ) => (
9
- < button onClick = { handleToggle } >
10
- Push Me
11
- </ button >
12
- ) }
8
+ { ( { handleToggle} ) => < button onClick = { handleToggle } > Push Me</ button > }
13
9
</ StateContext . Consumer >
14
10
)
15
11
16
12
const SecretMessage = ( ) => (
17
13
< StateContext . Consumer >
18
- { ( { toggleStatus} ) => (
19
- < h1 >
20
- { toggleStatus ? 'Secret Message' : 'Hidden' }
21
- </ h1 >
22
- ) }
14
+ { ( { toggleStatus} ) => < h1 > { toggleStatus ? 'Secret Message' : 'Hidden' } </ h1 > }
23
15
</ StateContext . Consumer >
24
16
)
25
17
26
18
class Container extends React . Component {
27
- state = {
28
- toggleStatus : false ,
29
- }
30
-
31
19
handleToggle = ( ) => {
32
20
this . setState ( prevState => ( {
33
21
toggleStatus : ! prevState . toggleStatus ,
34
22
} ) )
35
23
}
36
24
25
+ state = {
26
+ toggleStatus : false ,
27
+ handleToggle : this . handleToggle ,
28
+ }
29
+
37
30
render ( ) {
38
31
return (
39
32
< div >
40
- < StateContext . Provider
41
- value = { {
42
- toggleStatus : this . state . toggleStatus ,
43
- handleToggle : this . handleToggle ,
44
- } }
45
- >
33
+ < StateContext . Provider value = { this . state } >
46
34
< MyButton />
47
35
< SecretMessage />
48
36
</ StateContext . Provider >
@@ -51,9 +39,9 @@ class Container extends React.Component {
51
39
}
52
40
}
53
41
54
- test ( 'Component renders with the correct message, correctly changes message after clicking butotn ' , ( ) => {
42
+ test ( 'Component renders with the correct message then correctly changes message after clicking button ' , ( ) => {
55
43
const { getByText} = render ( < Container /> )
56
- expect ( getByText ( 'Hidden' ) . textContent ) . toBe ( 'Hidden' ) ;
44
+ expect ( getByText ( 'Hidden' ) . textContent ) . toBe ( 'Hidden' )
57
45
Simulate . click ( getByText ( 'Push Me' ) )
58
- expect ( getByText ( 'Secret Message' ) . textContent ) . toBe ( 'Secret Message' ) ;
46
+ expect ( getByText ( 'Secret Message' ) . textContent ) . toBe ( 'Secret Message' )
59
47
} )
0 commit comments