@@ -5,12 +5,10 @@ test.describe("Navigation tracking", () => {
55 page,
66 } ) => {
77 await page . addInitScript ( ( ) => {
8- // eslint-disable-next-line @typescript-eslint/no-explicit-any
98 ( window as any ) . __analyticsEvents = [ ] ;
109 window . addEventListener ( "tangle.analytics.track" , ( e ) => {
1110 const detail = ( e as CustomEvent ) . detail ;
1211 if ( detail . actionType === "page_view" ) {
13- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1412 ( window as any ) . __analyticsEvents . push ( detail ) ;
1513 }
1614 } ) ;
@@ -24,39 +22,39 @@ test.describe("Navigation tracking", () => {
2422 await page . getByRole ( "link" , { name : "Settings" } ) . click ( ) ;
2523 await expect ( page ) . toHaveURL ( / \/ s e t t i n g s / ) ;
2624
27- const events = await page . evaluate (
28- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29- ( ) => ( window as any ) . __analyticsEvents ,
30- ) ;
25+ const events = await page . evaluate ( ( ) => ( window as any ) . __analyticsEvents ) ;
3126
3227 expect ( events . length ) . toBeGreaterThanOrEqual ( 2 ) ;
3328
34- const [ initial , navigation ] = events ;
35-
36- // First page_view from landing on /
37- expect ( initial . actionType ) . toBe ( "page_view" ) ;
38- expect ( initial . metadata ) . toMatchObject ( {
39- to : "/" ,
29+ const landing = events . find (
30+ ( e : { metadata ?: { to ?: string } } ) =>
31+ e . metadata ?. to === "/welcome" || e . metadata ?. to === "/dashboard" ,
32+ ) ;
33+ expect ( landing ) . toBeTruthy ( ) ;
34+ expect ( landing . metadata ) . toMatchObject ( {
35+ to : expect . stringMatching ( / ^ \/ ( w e l c o m e | d a s h b o a r d ) $ / ) ,
4036 route_pattern : expect . any ( String ) ,
4137 } ) ;
4238
43- // Second page_view from navigating to settings
44- expect ( navigation . actionType ) . toBe ( "page_view" ) ;
39+ // Navigating to settings emits a page_view.
40+ const navigation = events . find (
41+ ( e : { metadata ?: { to ?: string } } ) =>
42+ typeof e . metadata ?. to === "string" &&
43+ e . metadata . to . includes ( "/settings" ) ,
44+ ) ;
45+ expect ( navigation ) . toBeTruthy ( ) ;
4546 expect ( navigation . metadata ) . toMatchObject ( {
46- from : "/" ,
4747 to : expect . stringContaining ( "/settings" ) ,
4848 route_pattern : expect . any ( String ) ,
4949 } ) ;
5050 } ) ;
5151
5252 test ( "captures search params in page_view metadata" , async ( { page } ) => {
5353 await page . addInitScript ( ( ) => {
54- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5554 ( window as any ) . __analyticsEvents = [ ] ;
5655 window . addEventListener ( "tangle.analytics.track" , ( e ) => {
5756 const detail = ( e as CustomEvent ) . detail ;
5857 if ( detail . actionType === "page_view" ) {
59- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6058 ( window as any ) . __analyticsEvents . push ( detail ) ;
6159 }
6260 } ) ;
@@ -67,10 +65,7 @@ test.describe("Navigation tracking", () => {
6765 page . locator ( "[data-testid='app-menu-actions']" ) ,
6866 ) . toBeVisible ( ) ;
6967
70- const events = await page . evaluate (
71- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72- ( ) => ( window as any ) . __analyticsEvents ,
73- ) ;
68+ const events = await page . evaluate ( ( ) => ( window as any ) . __analyticsEvents ) ;
7469
7570 expect ( events . length ) . toBeGreaterThanOrEqual ( 1 ) ;
7671
0 commit comments