@@ -129,6 +129,32 @@ const measures = [
129
129
} ,
130
130
] as unknown as Measure [ ] ;
131
131
132
+ const defaultMeasure = {
133
+ id : "m1234" ,
134
+ measureScoring : MeasureScoring . COHORT ,
135
+ createdBy : "testuser" ,
136
+ groups : [
137
+ {
138
+ groupId : "Group1_ID" ,
139
+ scoring : "Cohort" ,
140
+ populations : [
141
+ {
142
+ id : "id-1" ,
143
+ name : PopulationType . INITIAL_POPULATION ,
144
+ definition : "Pop1" ,
145
+ } ,
146
+ ] ,
147
+ stratifications : [
148
+ {
149
+ id : "strat-id-1" ,
150
+ } ,
151
+ ] ,
152
+ } ,
153
+ ] ,
154
+ model : "QI-Core v4.1.1" ,
155
+ acls :
[ { userId :
"[email protected] " , roles :
[ "SHARED_WITH" ] } ] ,
156
+ } as unknown as Measure ;
157
+
132
158
let mockApplyDefaults = false ;
133
159
jest . mock ( "@madie/madie-util" , ( ) => ( {
134
160
useFeatureFlags : jest . fn ( ) . mockImplementation ( ( ) => ( {
@@ -151,8 +177,11 @@ const renderWithTestCase = (
151
177
exportTestCase ,
152
178
onCloneTestCase ,
153
179
measure ,
154
- setSelectedTestCases = jest . fn ( ) , // Default to mock function
155
- setSorting = undefined
180
+ setSelectedTestCases = jest . fn ( ) ,
181
+ setSorting = undefined ,
182
+ selectedTestCases ,
183
+ deleteDialogModalOpen = false ,
184
+ setDeleteDialogModalOpen = jest . fn ( )
156
185
) => {
157
186
return render (
158
187
< MemoryRouter >
@@ -165,7 +194,10 @@ const renderWithTestCase = (
165
194
exportTestCase = { exportTestCase }
166
195
onCloneTestCase = { onCloneTestCase }
167
196
measure = { measure }
168
- setSelectedTestCases = { setSelectedTestCases } // Always pass mock function
197
+ setSelectedTestCases = { setSelectedTestCases }
198
+ selectedTestCases = { selectedTestCases }
199
+ deleteDialogModalOpen = { deleteDialogModalOpen }
200
+ setDeleteDialogModalOpen = { setDeleteDialogModalOpen }
169
201
/>
170
202
</ MemoryRouter >
171
203
) ;
@@ -213,19 +245,6 @@ describe("TestCase component", () => {
213
245
expect ( screen . getByText ( "export collection bundle" ) ) . toBeInTheDocument ( ) ;
214
246
expect ( screen . getByText ( "delete" ) ) . toBeInTheDocument ( ) ;
215
247
expect ( screen . getByText ( "Shift Test Case dates" ) ) . toBeInTheDocument ( ) ;
216
-
217
- const deleteButton = screen . getByText ( "delete" ) ;
218
- fireEvent . click ( deleteButton ) ;
219
-
220
- expect ( screen . getByText ( "Delete Test Case" ) ) . toBeInTheDocument ( ) ;
221
- expect ( screen . getByText ( "Cancel" ) ) . toBeInTheDocument ( ) ;
222
- expect ( screen . getByText ( "Yes, Delete" ) ) . toBeInTheDocument ( ) ;
223
-
224
- fireEvent . click ( screen . getByText ( "Cancel" ) ) ;
225
- await waitFor ( ( ) => {
226
- const submitButton = screen . queryByText ( "Yes, Delete" ) ;
227
- expect ( submitButton ) . not . toBeInTheDocument ( ) ;
228
- } ) ;
229
248
} ) ;
230
249
231
250
it ( "should render test case table with case numbers" , async ( ) => {
@@ -366,6 +385,76 @@ describe("TestCase component", () => {
366
385
expect ( setSelectedTestCasesMock ) . toHaveBeenCalled ( ) ;
367
386
} ) ;
368
387
388
+ it ( "should show the delete confirmation dialog when delete button is clicked" , async ( ) => {
389
+ const deleteTestCase = jest . fn ( ) ;
390
+ const exportTestCase = jest . fn ( ) ;
391
+ const onCloneTestCase = jest . fn ( ) ;
392
+ const setSelectedTestCasesMock = jest . fn ( ) ;
393
+
394
+ let deleteDialogModalOpen = false ;
395
+
396
+ const { rerender } = renderWithTestCase (
397
+ testCases ,
398
+ true ,
399
+ deleteTestCase ,
400
+ exportTestCase ,
401
+ onCloneTestCase ,
402
+ defaultMeasure ,
403
+ setSelectedTestCasesMock ,
404
+ undefined ,
405
+ [ ] ,
406
+ deleteDialogModalOpen ,
407
+ ( value ) => {
408
+ deleteDialogModalOpen = value ;
409
+ }
410
+ ) ;
411
+
412
+ const selectButton = await screen . findByTestId ( "select-action-ID" ) ;
413
+ expect ( selectButton ) . toBeInTheDocument ( ) ;
414
+
415
+ fireEvent . click ( selectButton ) ;
416
+
417
+ const deleteButton = await screen . findByText ( "delete" ) ;
418
+ expect ( deleteButton ) . toBeInTheDocument ( ) ;
419
+
420
+ fireEvent . click ( deleteButton ) ;
421
+
422
+ expect ( deleteDialogModalOpen ) . toBe ( true ) ;
423
+
424
+ rerender (
425
+ < MemoryRouter >
426
+ < TestCaseTable
427
+ sorting = { [ ] }
428
+ setSorting = { undefined }
429
+ testCases = { testCases }
430
+ canEdit = { true }
431
+ deleteTestCase = { deleteTestCase }
432
+ exportTestCase = { exportTestCase }
433
+ onCloneTestCase = { onCloneTestCase }
434
+ measure = { defaultMeasure }
435
+ setSelectedTestCases = { setSelectedTestCasesMock }
436
+ selectedTestCases = { [ ] }
437
+ deleteDialogModalOpen = { true }
438
+ setDeleteDialogModalOpen = { ( value ) => {
439
+ deleteDialogModalOpen = value ;
440
+ } }
441
+ />
442
+ </ MemoryRouter >
443
+ ) ;
444
+
445
+ const deleteDialog = screen . getByText ( "Delete Test Case" ) ;
446
+ expect ( deleteDialog ) . toBeInTheDocument ( ) ;
447
+
448
+ const cancelButton = screen . getByText ( "Cancel" ) ;
449
+ const confirmButton = screen . getByText ( "Yes, Delete" ) ;
450
+
451
+ expect ( cancelButton ) . toBeInTheDocument ( ) ;
452
+ expect ( confirmButton ) . toBeInTheDocument ( ) ;
453
+
454
+ fireEvent . click ( confirmButton ) ;
455
+ expect ( deleteTestCase ) . toHaveBeenCalled ( ) ;
456
+ } ) ;
457
+
369
458
it ( "should display View button if the measure is not a draft and the TestCaseListActionCenter feature flag is true" , async ( ) => {
370
459
( useFeatureFlags as jest . Mock ) . mockImplementation ( ( ) => ( {
371
460
TestCaseListActionCenter : true ,
0 commit comments