@@ -2,15 +2,12 @@ import { expect, test } from '@playwright/test';
2
2
import { waitForTransaction } from '@sentry-internal/test-utils' ;
3
3
4
4
test ( 'captures a pageload transaction' , async ( { page } ) => {
5
- // `pageload` transaction
6
5
const transactionPromise = waitForTransaction ( 'default-browser' , async transactionEvent => {
7
6
return ! ! transactionEvent ?. transaction && transactionEvent . contexts ?. trace ?. op === 'pageload' ;
8
7
} ) ;
9
8
10
9
await page . goto ( `/` ) ;
11
10
12
- // `waitForTransaction` hangs here because `transaction` (or `span`) event is not emitted,
13
- // so the code past this line is never executed.
14
11
const pageLoadTransaction = await transactionPromise ;
15
12
16
13
expect ( pageLoadTransaction ) . toEqual ( {
@@ -86,3 +83,36 @@ test('captures a pageload transaction', async ({ page }) => {
86
83
type : 'transaction' ,
87
84
} ) ;
88
85
} ) ;
86
+
87
+ test ( 'captures a navigation transaction' , async ( { page } ) => {
88
+ page . on ( 'console' , msg => console . log ( msg . text ( ) ) ) ;
89
+ const pageLoadTransactionPromise = waitForTransaction ( 'default-browser' , async transactionEvent => {
90
+ return ! ! transactionEvent ?. transaction && transactionEvent . contexts ?. trace ?. op === 'pageload' ;
91
+ } ) ;
92
+
93
+ const navigationTransactionPromise = waitForTransaction ( 'default-browser' , async transactionEvent => {
94
+ return ! ! transactionEvent ?. transaction && transactionEvent . contexts ?. trace ?. op === 'navigation' ;
95
+ } ) ;
96
+
97
+ await page . goto ( `/` ) ;
98
+ await pageLoadTransactionPromise ;
99
+
100
+ const linkElement = page . locator ( 'id=navigation-link' ) ;
101
+
102
+ await linkElement . click ( ) ;
103
+
104
+ const navigationTransaction = await navigationTransactionPromise ;
105
+
106
+ expect ( navigationTransaction ) . toMatchObject ( {
107
+ contexts : {
108
+ trace : {
109
+ op : 'navigation' ,
110
+ origin : 'auto.navigation.browser' ,
111
+ } ,
112
+ } ,
113
+ transaction : '/' ,
114
+ transaction_info : {
115
+ source : 'url' ,
116
+ } ,
117
+ } ) ;
118
+ } ) ;
0 commit comments