File tree 2 files changed +25
-1
lines changed
2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,11 @@ const initialStore: Store = {
17
17
bodyText : 'boss black' ,
18
18
completed : false
19
19
} ,
20
- { id : 'QwejYipEf5nk' , bodyText : 'caffe latte' , completed : false }
20
+ {
21
+ id : 'QwejYipEf5nk' ,
22
+ bodyText : 'caffe latte' ,
23
+ completed : false
24
+ }
21
25
]
22
26
}
23
27
@@ -52,3 +56,22 @@ test('should reflect store value change to render elements', () => {
52
56
expect ( getAllByTestId ( 'todo-item' ) [ 0 ] ) . toHaveTextContent ( 'boss black' )
53
57
expect ( getAllByTestId ( 'todo-item' ) [ 1 ] ) . toHaveTextContent ( 'caffe latte' )
54
58
} )
59
+
60
+ test ( 'should click toggle-all-button, then all item being comlete checked true and vice versa' , ( ) => {
61
+ const { getByTestId, getAllByTestId } = render (
62
+ < Provider store = { initialStore } >
63
+ < TodoList path = "/" />
64
+ </ Provider >
65
+ )
66
+
67
+ fireEvent . click ( getByTestId ( 'toggle-all-btn' ) )
68
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 0 ] as HTMLInputElement ) . checked ) . toBe ( true ) /* eslint-disable-line prettier/prettier */
69
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 1 ] as HTMLInputElement ) . checked ) . toBe ( true ) /* eslint-disable-line prettier/prettier */
70
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 2 ] as HTMLInputElement ) . checked ) . toBe ( true ) /* eslint-disable-line prettier/prettier */
71
+
72
+
73
+ fireEvent . click ( getByTestId ( 'toggle-all-btn' ) )
74
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 0 ] as HTMLInputElement ) . checked ) . toBe ( false ) /* eslint-disable-line prettier/prettier */
75
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 1 ] as HTMLInputElement ) . checked ) . toBe ( false ) /* eslint-disable-line prettier/prettier */
76
+ expect ( ( getAllByTestId ( 'todo-item-complete-check' ) [ 2 ] as HTMLInputElement ) . checked ) . toBe ( false ) /* eslint-disable-line prettier/prettier */
77
+ } )
Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ function TodoList({ path }: Props) {
31
31
type = "checkbox"
32
32
onChange = { toggleAll }
33
33
data-cy = "toggle-all-btn"
34
+ data-testid = "toggle-all-btn"
34
35
/>
35
36
< label htmlFor = "toggle-all" > Mark all as complete</ label >
36
37
< ul className = "todo-list" data-testid = "todo-list" >
You can’t perform that action at this time.
0 commit comments