1
1
import { expect , test } from '../../../fixtures/real-api' ;
2
+
3
+ declare global {
4
+ interface Window {
5
+ __REDUX_ACTION_LOG__ ?: string [ ] ;
6
+ }
7
+ }
8
+
2
9
test . describe (
3
10
'Nested loops' ,
4
11
{
@@ -16,7 +23,7 @@ test.describe(
16
23
// Load run history
17
24
await page . getByRole ( 'menuitem' , { name : 'Run History' } ) . click ( ) ;
18
25
await page . waitForTimeout ( 3000 ) ;
19
- await page . getByRole ( 'gridcell' , { name : '/18/2025, 3:25:03 PM ' } ) . click ( ) ;
26
+ await page . getByRole ( 'gridcell' , { name : '/18/2025' } ) . click ( ) ;
20
27
21
28
// Check for outermost foreach
22
29
await expect ( page . getByTestId ( 'msla-pill-foreach_status' ) ) . toBeVisible ( ) ;
@@ -47,6 +54,22 @@ test.describe(
47
54
48
55
// Check inner loop to be interactive
49
56
await page . getByTestId ( 'msla-pager-v2-foreach_2' ) . getByLabel ( 'Next' ) . click ( ) ;
57
+
58
+ // Clear action log
59
+ await page . evaluate ( ( ) => ( window . __REDUX_ACTION_LOG__ = [ ] ) ) ;
60
+ await page . waitForTimeout ( 1000 ) ;
61
+
62
+ // Collapse / expand inner loop
63
+ await page . getByLabel ( 'Foreach-2 operation' ) . click ( { button : 'right' } ) ;
64
+ await page . getByText ( 'Collapse nested' ) . click ( { force : true } ) ;
65
+ await page . getByLabel ( 'Foreach-2 operation' ) . click ( { button : 'right' } ) ;
66
+ await page . getByText ( 'Expand nested' ) . click ( { force : true } ) ;
67
+ await page . waitForTimeout ( 2000 ) ;
68
+
69
+ // Confirm the actions only triggered once
70
+ const actionLog = ( await page . evaluate ( ( ) => window . __REDUX_ACTION_LOG__ ) ) ?? [ ] ;
71
+ const numActions = actionLog ?. filter ( ( action ) => action === 'workflow/setRepetitionRunData' ) . length ;
72
+ expect ( numActions ) . toEqual ( 1 ) ;
50
73
} ) ;
51
74
}
52
75
) ;
0 commit comments