@@ -4,8 +4,17 @@ import { IndexPage } from './index-page'
4
4
5
5
const indexPage = new IndexPage ( )
6
6
7
+ const basicEdgeFn = `
8
+ // this is a process signal function
9
+ const processSignal = (signal) => {
10
+ if (signal.type === 'interaction') {
11
+ const eventName = signal.data.eventType + ' ' + '[' + signal.type + ']'
12
+ analytics.track(eventName, signal.data)
13
+ }
14
+ }`
15
+
7
16
test . beforeEach ( async ( { page } ) => {
8
- await indexPage . load ( page )
17
+ await indexPage . load ( page , basicEdgeFn )
9
18
} )
10
19
11
20
test ( 'network signals' , async ( ) => {
@@ -15,7 +24,8 @@ test('network signals', async () => {
15
24
await indexPage . mockRandomJSONApi ( )
16
25
await indexPage . makeFetchCallToRandomJSONApi ( )
17
26
await indexPage . waitForSignalsApiFlush ( )
18
- const batch = indexPage . signalsApiReq . postDataJSON ( ) . batch as SegmentEvent [ ]
27
+ const batch = indexPage . lastSignalsApiReq . postDataJSON ( )
28
+ . batch as SegmentEvent [ ]
19
29
const networkEvents = batch . filter (
20
30
( el : SegmentEvent ) => el . properties ! . type === 'network'
21
31
)
@@ -41,7 +51,7 @@ test('instrumentation signals', async () => {
41
51
indexPage . waitForSignalsApiFlush ( ) ,
42
52
] )
43
53
44
- const signalReqJSON = indexPage . signalsApiReq . postDataJSON ( )
54
+ const signalReqJSON = indexPage . lastSignalsApiReq . postDataJSON ( )
45
55
46
56
const isoDateRegEx = / ^ \d { 4 } - \d { 2 } - \d { 2 } T \d { 2 } : \d { 2 } : \d { 2 } \. \d { 3 } Z $ /
47
57
const instrumentationEvents = signalReqJSON . batch . filter (
@@ -59,19 +69,19 @@ test('instrumentation signals', async () => {
59
69
} )
60
70
} )
61
71
62
- test ( 'interaction signals' , async ( { page } ) => {
72
+ test ( 'interaction signals' , async ( ) => {
63
73
/**
64
74
* Make a button click, see if it:
65
75
* - creates an interaction signal that sends to the signals endpoint
66
76
* - creates an analytics event that sends to the tracking endpoint
67
77
*/
68
78
await Promise . all ( [
69
- page . click ( 'button' ) ,
79
+ indexPage . clickButton ( ) ,
70
80
indexPage . waitForSignalsApiFlush ( ) ,
71
81
indexPage . waitForTrackingApiFlush ( ) ,
72
82
] )
73
83
74
- const signalsReqJSON = indexPage . signalsApiReq . postDataJSON ( )
84
+ const signalsReqJSON = indexPage . lastSignalsApiReq . postDataJSON ( )
75
85
const interactionSignals = signalsReqJSON . batch . filter (
76
86
( el : SegmentEvent ) => el . properties ! . type === 'interaction'
77
87
)
@@ -104,7 +114,7 @@ test('interaction signals', async ({ page }) => {
104
114
} ,
105
115
} )
106
116
107
- const analyticsReqJSON = indexPage . trackingApiReq . postDataJSON ( )
117
+ const analyticsReqJSON = indexPage . lastTrackingApiReq . postDataJSON ( )
108
118
109
119
expect ( analyticsReqJSON ) . toMatchObject ( {
110
120
writeKey : '<SOME_WRITE_KEY>' ,
@@ -128,7 +138,7 @@ test('navigation signals', async ({ page }) => {
128
138
{
129
139
// on page load, a navigation signal should be sent
130
140
await indexPage . waitForSignalsApiFlush ( )
131
- const signalReqJSON = indexPage . signalsApiReq . postDataJSON ( )
141
+ const signalReqJSON = indexPage . lastSignalsApiReq . postDataJSON ( )
132
142
const navigationEvents = signalReqJSON . batch . filter (
133
143
( el : SegmentEvent ) => el . properties ! . type === 'navigation'
134
144
)
@@ -153,7 +163,7 @@ test('navigation signals', async ({ page }) => {
153
163
window . location . hash = '#foo'
154
164
} )
155
165
await indexPage . waitForSignalsApiFlush ( )
156
- const signalReqJSON = indexPage . signalsApiReq . postDataJSON ( )
166
+ const signalReqJSON = indexPage . lastSignalsApiReq . postDataJSON ( )
157
167
158
168
const navigationEvents = signalReqJSON . batch . filter (
159
169
( el : SegmentEvent ) => el . properties ! . type === 'navigation'
0 commit comments