1
1
'use strict' ;
2
2
3
- window . localStorage . setItem ( 'wm_segment' , true ) ;
4
-
5
3
var Analytics = require ( '@segment/analytics.js-core' ) . constructor ;
6
4
var integration = require ( '@segment/analytics.js-integration' ) ;
7
5
var sandbox = require ( '@segment/clear-env' ) ;
@@ -12,10 +10,13 @@ var Walkme = require('../lib');
12
10
describe ( 'WalkMe' , function ( ) {
13
11
var analytics ;
14
12
var walkme ;
13
+
15
14
var options = {
16
- walkMeSystemId : 'E011E9F84AD84D819286A5A94BAF2255' ,
17
- walkMeEnvironment : 'test' ,
18
- walkMeLoadInIframe : true
15
+ walkMeSystemId : '1af309271794493f842eeea09740feb0' . toUpperCase ( ) ,
16
+ environment : 'test' ,
17
+ trackWalkMeEvents : false ,
18
+ loadWalkMeInIframe : true ,
19
+ integrityHash : ''
19
20
} ;
20
21
21
22
beforeEach ( function ( ) {
@@ -24,22 +25,27 @@ describe('WalkMe', function() {
24
25
analytics . use ( Walkme ) ;
25
26
analytics . use ( tester ) ;
26
27
analytics . add ( walkme ) ;
28
+ window . analytics = analytics ;
27
29
} ) ;
28
30
29
31
afterEach ( function ( ) {
30
32
analytics . restore ( ) ;
31
33
analytics . reset ( ) ;
32
34
walkme . reset ( ) ;
33
35
sandbox ( ) ;
36
+ window . analytics = undefined ;
34
37
} ) ;
35
38
36
39
it ( 'should have the correct settings' , function ( ) {
37
40
analytics . compare (
38
41
Walkme ,
39
42
integration ( 'WalkMe' )
40
- . assumesPageview ( )
41
- . option ( 'walkMeSystemId' , '' )
42
- . option ( 'walkMeEnvironment' , '' )
43
+ . assumesPageview ( )
44
+ . option ( 'walkMeSystemId' , '' )
45
+ . option ( 'environment' , '' )
46
+ . option ( 'trackWalkMeEvents' , false )
47
+ . option ( 'loadWalkMeInIframe' , false )
48
+ . option ( 'integrityHash' , '' )
43
49
) ;
44
50
} ) ;
45
51
@@ -54,7 +60,17 @@ describe('WalkMe', function() {
54
60
analytics . initialize ( ) ;
55
61
analytics . page ( ) ;
56
62
analytics . identify ( ) ;
57
- analytics . deepEqual ( window . _walkmeConfig , { smartLoad : true } ) ;
63
+
64
+ analytics . deepEqual ( window . _walkmeConfig , {
65
+ smartLoad : true ,
66
+ segmentOptions : options
67
+ } ) ;
68
+ } ) ;
69
+
70
+ it ( 'should call #load' , function ( ) {
71
+ analytics . initialize ( ) ;
72
+ analytics . page ( ) ;
73
+ analytics . called ( walkme . load ) ;
58
74
} ) ;
59
75
} ) ;
60
76
} ) ;
@@ -64,37 +80,74 @@ describe('WalkMe', function() {
64
80
analytics . spy ( walkme , 'load' ) ;
65
81
} ) ;
66
82
83
+ this . afterEach ( ( ) => {
84
+ window . _walkmeInternals . Segment = false
85
+ } )
86
+
67
87
it ( 'should load walkme test lib' , function ( done ) {
68
88
try {
89
+ var tag = fmt (
90
+ '<script src="https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js" >' ,
91
+ options . walkMeSystemId . toLowerCase ( ) ,
92
+ 'test' ,
93
+ options . walkMeSystemId . toLowerCase ( )
94
+ ) ;
95
+
96
+ window . walkme_ready = function ( ) {
97
+ analytics . assert (
98
+ ! ! window . WalkMeAPI ,
99
+ 'Expected WalkMeAPI to be present on the page'
100
+ ) ;
101
+
102
+ done ( ) ;
103
+ } ;
104
+
69
105
analytics . load ( walkme , function ( ) {
70
- analytics . loaded (
71
- fmt (
72
- '<script src="https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js"/>' ,
73
- options . walkMeSystemId . toLowerCase ( ) ,
74
- 'test' ,
75
- options . walkMeSystemId . toLowerCase ( )
76
- )
106
+ analytics . loaded ( tag ) ;
107
+ analytics . identify ( 'UserId' ) ;
108
+ } ) ;
109
+ } catch ( e ) {
110
+ done ( e ) ;
111
+ }
112
+ } ) . timeout ( 10000 ) ;
113
+
114
+ it ( 'should load walkme SRI' , function ( done ) {
115
+ try {
116
+ var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
117
+ var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
118
+
119
+ var tag = fmt (
120
+ '<script src="https://cdn.walkme.com/users/%s/%s/walkme_private_%s_https.js" crossorigin="" integrity="%s" >' ,
121
+ walkMeSystemId ,
122
+ 'test' ,
123
+ walkMeSystemId ,
124
+ integrityHash
125
+ ) ;
126
+
127
+ window . walkme_ready = function ( ) {
128
+ analytics . assert (
129
+ ! ! window . WalkMeAPI ,
130
+ 'Expected WalkMeAPI to be present on the page'
77
131
) ;
78
132
79
- analytics . identify ( ) ;
133
+ done ( ) ;
134
+ } ;
80
135
81
- window . walkme_ready = function ( ) {
82
- analytics . assert (
83
- ! ! window . WalkMeAPI ,
84
- 'Expected WalkMeAPI to be present on the page'
85
- ) ;
136
+ walkme . options . walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
137
+ walkme . options . integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
86
138
87
- done ( ) ;
88
- } ;
139
+ analytics . load ( walkme , function ( ) {
140
+ analytics . loaded ( tag ) ;
89
141
} ) ;
90
142
} catch ( e ) {
91
143
done ( e ) ;
92
144
}
93
- } ) ;
145
+ } ) . timeout ( 10000 ) ;
94
146
} ) ;
95
147
96
148
describe ( 'after loading' , function ( ) {
97
149
beforeEach ( function ( done ) {
150
+ window . analytics = analytics ;
98
151
analytics . once ( 'ready' , done ) ;
99
152
analytics . initialize ( ) ;
100
153
analytics . page ( ) ;
@@ -145,7 +198,7 @@ describe('WalkMe', function() {
145
198
window . walkme_ready = function ( ) {
146
199
done ( ) ;
147
200
} ;
148
- } ) ;
201
+ } ) . timeout ( 10000 ) ;
149
202
} ) ;
150
203
} ) ;
151
204
} ) ;
0 commit comments