@@ -6,6 +6,8 @@ var sandbox = require('@segment/clear-env');
6
6
var tester = require ( '@segment/analytics.js-integration-tester' ) ;
7
7
var fmt = require ( '@segment/fmt' ) ;
8
8
var Walkme = require ( '../lib' ) ;
9
+ var sinon = require ( 'sinon' ) ;
10
+ var assert = require ( 'assert' ) ;
9
11
10
12
describe ( 'WalkMe' , function ( ) {
11
13
var analytics ;
@@ -16,7 +18,8 @@ describe('WalkMe', function() {
16
18
environment : 'test' ,
17
19
trackWalkMeEvents : false ,
18
20
loadWalkMeInIframe : true ,
19
- integrityHash : ''
21
+ integrityHash : '' ,
22
+ customDirecotry : '' ,
20
23
} ;
21
24
22
25
beforeEach ( function ( ) {
@@ -46,6 +49,7 @@ describe('WalkMe', function() {
46
49
. option ( 'trackWalkMeEvents' , false )
47
50
. option ( 'loadWalkMeInIframe' , false )
48
51
. option ( 'integrityHash' , '' )
52
+ . option ( 'customDirecotry' , 'users' )
49
53
) ;
50
54
} ) ;
51
55
@@ -85,63 +89,130 @@ describe('WalkMe', function() {
85
89
} )
86
90
87
91
it ( 'should load walkme test lib' , function ( done ) {
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 ( )
92
+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
93
+ var url = fmt (
94
+ 'https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js' ,
95
+ options . walkMeSystemId . toLowerCase ( ) ,
96
+ 'test' ,
97
+ options . walkMeSystemId . toLowerCase ( )
98
+ ) ;
99
+
100
+ window . walkme_ready = function ( ) {
101
+ analytics . assert (
102
+ ! ! window . WalkMeAPI ,
103
+ 'Expected WalkMeAPI to be present on the page'
94
104
) ;
95
105
96
- window . walkme_ready = function ( ) {
97
- analytics . assert (
98
- ! ! window . WalkMeAPI ,
99
- 'Expected WalkMeAPI to be present on the page'
100
- ) ;
106
+ var payload = spy . args [ 0 ] [ 0 ] ;
101
107
108
+ try {
109
+ assert . equal ( url , payload . url ) ;
102
110
done ( ) ;
103
- } ;
111
+ }
112
+ catch ( e ) {
113
+ done ( e ) ;
114
+ }
115
+ } ;
104
116
105
- analytics . load ( walkme , function ( ) {
106
- analytics . loaded ( tag ) ;
107
- analytics . identify ( 'UserId' ) ;
108
- } ) ;
109
- } catch ( e ) {
110
- done ( e ) ;
111
- }
117
+ analytics . load ( walkme , function ( ) {
118
+ analytics . identify ( 'UserId' ) ;
119
+ } ) ;
120
+ } ) . timeout ( 10000 ) ;
121
+
122
+ it ( 'should load walkme Prod Environment' , function ( done ) {
123
+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
124
+
125
+ var tag = fmt (
126
+ '<script src="https://cdn.walkme.com/users/%s/walkme_%s_https.js" >' ,
127
+ options . walkMeSystemId . toLowerCase ( ) ,
128
+ options . walkMeSystemId . toLowerCase ( )
129
+ ) ;
130
+
131
+ walkme . options . environment = 'production' ;
132
+
133
+ window . walkme_ready = function ( ) {
134
+ try {
135
+ assert . equal ( ! ! window . WalkMeAPI , true ) ;
136
+
137
+ var payload = spy . args [ 0 ] [ 0 ] ;
138
+ assert . equal ( tag , '<script src="' + payload . url + '" >' )
139
+ done ( ) ;
140
+ }
141
+ catch ( e ) {
142
+ done ( e ) ;
143
+ }
144
+
145
+ } ;
146
+
147
+ analytics . load ( walkme , function ( ) {
148
+ analytics . loaded ( tag ) ;
149
+ } ) ;
112
150
} ) . timeout ( 10000 ) ;
113
151
114
152
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
- ) ;
153
+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
126
154
127
- window . walkme_ready = function ( ) {
128
- analytics . assert (
129
- ! ! window . WalkMeAPI ,
130
- 'Expected WalkMeAPI to be present on the page'
131
- ) ;
155
+ var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
156
+ var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
157
+
158
+ var url = fmt (
159
+ 'https://cdn.walkme.com/users/%s/%s/walkme_private_%s_https.js' ,
160
+ walkMeSystemId ,
161
+ 'test' ,
162
+ walkMeSystemId ,
163
+ ) ;
164
+
165
+ window . walkme_ready = function ( ) {
166
+ try {
167
+ assert . equal ( ! ! window . WalkMeAPI , true ) ;
132
168
169
+ var payload = spy . args [ 0 ] [ 0 ] ;
170
+
171
+ assert . equal ( url , payload . url ) ;
133
172
done ( ) ;
134
- } ;
173
+ } catch ( e ) {
174
+ done ( e ) ;
175
+ }
176
+ } ;
135
177
136
- walkme . options . walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
137
- walkme . options . integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
178
+ walkme . options . walkMeSystemId = walkMeSystemId ;
179
+ walkme . options . integrityHash = integrityHash ;
138
180
139
- analytics . load ( walkme , function ( ) {
140
- analytics . loaded ( tag ) ;
141
- } ) ;
142
- } catch ( e ) {
143
- done ( e ) ;
144
- }
181
+ analytics . load ( walkme , function ( ) { } ) ;
182
+ } ) . timeout ( 10000 ) ;
183
+
184
+ it ( 'should setup bucket' , function ( done ) {
185
+ var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
186
+ var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
187
+ var bucket = 'users' ;
188
+
189
+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
190
+ var url = fmt (
191
+ 'https://cdn.walkme.com/%s/%s/%s/walkme_private_%s_https.js' ,
192
+ bucket ,
193
+ walkMeSystemId ,
194
+ 'test' ,
195
+ walkMeSystemId
196
+ ) ;
197
+
198
+ window . walkme_ready = function ( ) {
199
+ var payload = spy . args [ 0 ] [ 0 ] ;
200
+
201
+ try {
202
+ assert . equal ( ! ! window . WalkMeAPI , true ) ;
203
+ assert . equal ( url , payload . url ) ;
204
+ done ( ) ;
205
+ }
206
+ catch ( e ) {
207
+ done ( e ) ;
208
+ }
209
+ } ;
210
+
211
+ walkme . options . walkMeSystemId = walkMeSystemId ;
212
+ walkme . options . integrityHash = integrityHash ;
213
+ walkme . options . customDirecotry = bucket ;
214
+
215
+ analytics . load ( walkme ) ;
145
216
} ) . timeout ( 10000 ) ;
146
217
} ) ;
147
218
0 commit comments