@@ -11,58 +11,222 @@ import { MouseEvent } from 'react';
11
11
import { BaseCard } from './BaseCard' ;
12
12
13
13
describe ( BaseCard . name , ( ) => {
14
- let childrenMock : jest . Mock < ( ) => React . JSX . Element | React . JSX . Element [ ] > ;
15
- let colorClassFixture : string ;
16
- let onDoubleClickMock : jest . Mock < ( event : MouseEvent ) => void > ;
17
-
18
- beforeAll ( ( ) => {
19
- childrenMock = jest . fn ( ) ;
20
- colorClassFixture = 'blue-card' ;
21
- onDoubleClickMock = jest . fn ( ) ;
14
+ describe ( 'having a BaseCardOptions with isSelected true' , ( ) => {
15
+ let childrenMock : jest . Mock < ( ) => React . JSX . Element | React . JSX . Element [ ] > ;
16
+ let selectedClassName : string ;
17
+ let colorClassFixture : string ;
18
+ let isSelectedFixture : boolean ;
19
+ let onDoubleClickMock : jest . Mock < ( event : MouseEvent ) => void > ;
20
+
21
+ beforeAll ( ( ) => {
22
+ childrenMock = jest . fn ( ) ;
23
+ selectedClassName = 'selected' ;
24
+ colorClassFixture = 'blue-card' ;
25
+ isSelectedFixture = true ;
26
+ onDoubleClickMock = jest . fn ( ) ;
27
+ } ) ;
28
+
29
+ describe ( 'when called' , ( ) => {
30
+ let isExpectedClassNameInCard : boolean ;
31
+ let isSelectedCard : boolean ;
32
+
33
+ beforeAll ( ( ) => {
34
+ const renderResult : RenderResult = render (
35
+ < BaseCard
36
+ children = { childrenMock ( ) }
37
+ colorClass = { colorClassFixture }
38
+ isSelected = { isSelectedFixture }
39
+ onDoubleClick = { onDoubleClickMock }
40
+ > </ BaseCard > ,
41
+ ) ;
42
+
43
+ const cardColor : HTMLElement = renderResult . container . querySelector (
44
+ '.cornie-card-inner-content' ,
45
+ ) as HTMLElement ;
46
+
47
+ isExpectedClassNameInCard =
48
+ cardColor . classList . contains ( colorClassFixture ) ;
49
+
50
+ const divSelectedCard : HTMLElement =
51
+ renderResult . container . querySelector ( '.cornie-card' ) as HTMLElement ;
52
+
53
+ isSelectedCard = divSelectedCard . classList . contains ( selectedClassName ) ;
54
+
55
+ const selectedCard : Element | null =
56
+ renderResult . container . querySelector (
57
+ '.cornie-card-inner-content' ,
58
+ ) as Element ;
59
+
60
+ fireEvent . dblClick ( selectedCard ) ;
61
+
62
+ void waitFor ( ( ) => {
63
+ // eslint-disable-next-line jest/no-standalone-expect
64
+ expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
65
+ } ) ;
66
+ } ) ;
67
+
68
+ afterAll ( ( ) => {
69
+ jest . clearAllMocks ( ) ;
70
+ } ) ;
71
+
72
+ it ( 'should contain a div with a blue-card className' , ( ) => {
73
+ expect ( isExpectedClassNameInCard ) . toBe ( true ) ;
74
+ } ) ;
75
+
76
+ it ( 'should contain a div with selected className' , ( ) => {
77
+ expect ( isSelectedCard ) . toBe ( true ) ;
78
+ } ) ;
79
+
80
+ it ( 'should call a onDoubleClick()' , ( ) => {
81
+ expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
82
+ expect ( onDoubleClickMock ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
83
+ } ) ;
84
+ } ) ;
22
85
} ) ;
23
86
24
- describe ( 'when called' , ( ) => {
25
- let isExpectedClassNameInCard : boolean ;
87
+ describe ( 'having a BaseCardOptions with isSelected false' , ( ) => {
88
+ let childrenMock : jest . Mock < ( ) => React . JSX . Element | React . JSX . Element [ ] > ;
89
+ let selectedClassName : string ;
90
+ let colorClassFixture : string ;
91
+ let isSelectedFixture : boolean ;
92
+ let onDoubleClickMock : jest . Mock < ( event : MouseEvent ) => void > ;
26
93
27
94
beforeAll ( ( ) => {
28
- const renderResult : RenderResult = render (
29
- < BaseCard
30
- children = { childrenMock ( ) }
31
- colorClass = { colorClassFixture }
32
- onDoubleClick = { onDoubleClickMock }
33
- > </ BaseCard > ,
34
- ) ;
95
+ childrenMock = jest . fn ( ) ;
96
+ selectedClassName = 'selected' ;
97
+ colorClassFixture = 'blue-card' ;
98
+ isSelectedFixture = false ;
99
+ onDoubleClickMock = jest . fn ( ) ;
100
+ } ) ;
101
+
102
+ describe ( 'when called' , ( ) => {
103
+ let isExpectedClassNameInCard : boolean ;
104
+ let isSelectedCard : boolean ;
105
+
106
+ beforeAll ( ( ) => {
107
+ const renderResult : RenderResult = render (
108
+ < BaseCard
109
+ children = { childrenMock ( ) }
110
+ colorClass = { colorClassFixture }
111
+ isSelected = { isSelectedFixture }
112
+ onDoubleClick = { onDoubleClickMock }
113
+ > </ BaseCard > ,
114
+ ) ;
35
115
36
- const cardColor : HTMLElement = renderResult . container . querySelector (
37
- '.cornie-card-inner-content' ,
38
- ) as HTMLElement ;
116
+ const cardColor : HTMLElement = renderResult . container . querySelector (
117
+ '.cornie-card-inner-content' ,
118
+ ) as HTMLElement ;
39
119
40
- isExpectedClassNameInCard =
41
- cardColor . classList . contains ( colorClassFixture ) ;
120
+ isExpectedClassNameInCard =
121
+ cardColor . classList . contains ( colorClassFixture ) ;
42
122
43
- const selectedCard : Element | null = renderResult . container . querySelector (
44
- '.cornie-card-inner-content' ,
45
- ) as Element ;
123
+ const divSelectedCard : HTMLElement =
124
+ renderResult . container . querySelector ( '.cornie-card' ) as HTMLElement ;
46
125
47
- fireEvent . dblClick ( selectedCard ) ;
126
+ isSelectedCard = divSelectedCard . classList . contains ( selectedClassName ) ;
48
127
49
- void waitFor ( ( ) => {
50
- // eslint-disable-next-line jest/no-standalone-expect
128
+ const selectedCard : Element | null =
129
+ renderResult . container . querySelector (
130
+ '.cornie-card-inner-content' ,
131
+ ) as Element ;
132
+
133
+ fireEvent . dblClick ( selectedCard ) ;
134
+
135
+ void waitFor ( ( ) => {
136
+ // eslint-disable-next-line jest/no-standalone-expect
137
+ expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
138
+ } ) ;
139
+ } ) ;
140
+
141
+ afterAll ( ( ) => {
142
+ jest . clearAllMocks ( ) ;
143
+ } ) ;
144
+
145
+ it ( 'should contain a div with a blue-card className' , ( ) => {
146
+ expect ( isExpectedClassNameInCard ) . toBe ( true ) ;
147
+ } ) ;
148
+
149
+ it ( 'should not contain a div with selected className' , ( ) => {
150
+ expect ( isSelectedCard ) . toBe ( false ) ;
151
+ } ) ;
152
+
153
+ it ( 'should call a onDoubleClick()' , ( ) => {
51
154
expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
155
+ expect ( onDoubleClickMock ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
52
156
} ) ;
53
157
} ) ;
158
+ } ) ;
54
159
55
- afterAll ( ( ) => {
56
- jest . clearAllMocks ( ) ;
57
- } ) ;
160
+ describe ( 'having a BaseCardOptions with isSelected undefined' , ( ) => {
161
+ let childrenMock : jest . Mock < ( ) => React . JSX . Element | React . JSX . Element [ ] > ;
162
+ let selectedClassName : string ;
163
+ let colorClassFixture : string ;
164
+ let isSelectedFixture : undefined ;
165
+ let onDoubleClickMock : jest . Mock < ( event : MouseEvent ) => void > ;
58
166
59
- it ( 'should contain a div with a blue-card className' , ( ) => {
60
- expect ( isExpectedClassNameInCard ) . toBe ( true ) ;
167
+ beforeAll ( ( ) => {
168
+ childrenMock = jest . fn ( ) ;
169
+ selectedClassName = 'selected' ;
170
+ colorClassFixture = 'blue-card' ;
171
+ isSelectedFixture = undefined ;
172
+ onDoubleClickMock = jest . fn ( ) ;
61
173
} ) ;
62
174
63
- it ( 'should call a onDoubleClick()' , ( ) => {
64
- expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
65
- expect ( onDoubleClickMock ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
175
+ describe ( 'when called' , ( ) => {
176
+ let isExpectedClassNameInCard : boolean ;
177
+ let isSelectedCard : boolean ;
178
+
179
+ beforeAll ( ( ) => {
180
+ const renderResult : RenderResult = render (
181
+ < BaseCard
182
+ children = { childrenMock ( ) }
183
+ colorClass = { colorClassFixture }
184
+ isSelected = { isSelectedFixture }
185
+ onDoubleClick = { onDoubleClickMock }
186
+ > </ BaseCard > ,
187
+ ) ;
188
+
189
+ const cardColor : HTMLElement = renderResult . container . querySelector (
190
+ '.cornie-card-inner-content' ,
191
+ ) as HTMLElement ;
192
+
193
+ isExpectedClassNameInCard =
194
+ cardColor . classList . contains ( colorClassFixture ) ;
195
+
196
+ const divSelectedCard : HTMLElement =
197
+ renderResult . container . querySelector ( '.cornie-card' ) as HTMLElement ;
198
+
199
+ isSelectedCard = divSelectedCard . classList . contains ( selectedClassName ) ;
200
+
201
+ const selectedCard : Element | null =
202
+ renderResult . container . querySelector (
203
+ '.cornie-card-inner-content' ,
204
+ ) as Element ;
205
+
206
+ fireEvent . dblClick ( selectedCard ) ;
207
+
208
+ void waitFor ( ( ) => {
209
+ // eslint-disable-next-line jest/no-standalone-expect
210
+ expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
211
+ } ) ;
212
+ } ) ;
213
+
214
+ afterAll ( ( ) => {
215
+ jest . clearAllMocks ( ) ;
216
+ } ) ;
217
+
218
+ it ( 'should contain a div with a blue-card className' , ( ) => {
219
+ expect ( isExpectedClassNameInCard ) . toBe ( true ) ;
220
+ } ) ;
221
+
222
+ it ( 'should not contain a div with selected className' , ( ) => {
223
+ expect ( isSelectedCard ) . toBe ( false ) ;
224
+ } ) ;
225
+
226
+ it ( 'should call a onDoubleClick()' , ( ) => {
227
+ expect ( onDoubleClickMock ) . toHaveBeenCalledTimes ( 1 ) ;
228
+ expect ( onDoubleClickMock ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
229
+ } ) ;
66
230
} ) ;
67
231
} ) ;
68
232
} ) ;
0 commit comments