@@ -6,6 +6,8 @@ var sandbox = require('@segment/clear-env');
66var tester = require ( '@segment/analytics.js-integration-tester' ) ;
77var fmt = require ( '@segment/fmt' ) ;
88var Walkme = require ( '../lib' ) ;
9+ var sinon = require ( 'sinon' ) ;
10+ var assert = require ( 'assert' ) ;
911
1012describe ( 'WalkMe' , function ( ) {
1113 var analytics ;
@@ -87,98 +89,130 @@ describe('WalkMe', function() {
8789 } )
8890
8991 it ( 'should load walkme test lib' , function ( done ) {
90- try {
91- var tag = fmt (
92- '<script src="https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js" >' ,
93- options . walkMeSystemId . toLowerCase ( ) ,
94- 'test' ,
95- 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'
96104 ) ;
97105
98- window . walkme_ready = function ( ) {
99- analytics . assert (
100- ! ! window . WalkMeAPI ,
101- 'Expected WalkMeAPI to be present on the page'
102- ) ;
106+ var payload = spy . args [ 0 ] [ 0 ] ;
103107
108+ try {
109+ assert . equal ( url , payload . url ) ;
104110 done ( ) ;
105- } ;
106-
107- analytics . load ( walkme , function ( ) {
108- analytics . loaded ( tag ) ;
109- analytics . identify ( 'UserId' ) ;
110- } ) ;
111- } catch ( e ) {
112- done ( e ) ;
113- }
111+ }
112+ catch ( e ) {
113+ done ( e ) ;
114+ }
115+ } ;
116+
117+ analytics . load ( walkme , function ( ) {
118+ analytics . identify ( 'UserId' ) ;
119+ } ) ;
114120 } ) . timeout ( 10000 ) ;
115121
116- it ( 'should load walkme SRI' , function ( done ) {
117- try {
118- var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
119- var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
120-
121- var tag = fmt (
122- '<script src="https://cdn.walkme.com/users/%s/%s/walkme_private_%s_https.js" crossorigin="" integrity="%s" >' ,
123- walkMeSystemId ,
124- 'test' ,
125- walkMeSystemId ,
126- integrityHash
127- ) ;
122+ it ( 'should load walkme Prod Environment' , function ( done ) {
123+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
128124
129- window . walkme_ready = function ( ) {
130- analytics . assert (
131- ! ! window . WalkMeAPI ,
132- 'Expected WalkMeAPI to be present on the page'
133- ) ;
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 ) ;
134136
137+ var payload = spy . args [ 0 ] [ 0 ] ;
138+ assert . equal ( tag , '<script src="' + payload . url + '" >' )
135139 done ( ) ;
136- } ;
140+ }
141+ catch ( e ) {
142+ done ( e ) ;
143+ }
137144
138- walkme . options . walkMeSystemId = walkMeSystemId ;
139- walkme . options . integrityHash = integrityHash ;
145+ } ;
140146
141- analytics . load ( walkme , function ( ) {
142- analytics . loaded ( tag ) ;
143- } ) ;
144- } catch ( e ) {
145- done ( e ) ;
146- }
147+ analytics . load ( walkme , function ( ) {
148+ analytics . loaded ( tag ) ;
149+ } ) ;
147150 } ) . timeout ( 10000 ) ;
148151
149- it ( 'should setup bucket' , function ( done ) {
150- try {
151- var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
152- var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
153- var bucket = 'users' ;
154-
155- var tag = fmt (
156- '<script src="https://cdn.walkme.com/%s/%s/%s/walkme_%s_https.js" crossorigin="" >' ,
157- bucket ,
158- walkMeSystemId ,
159- 'test' ,
160- walkMeSystemId
161- ) ;
152+ it ( 'should load walkme SRI' , function ( done ) {
153+ var spy = sinon . spy ( walkme , 'initializeTester' ) ;
162154
163- window . walkme_ready = function ( ) {
164- analytics . assert (
165- ! ! window . WalkMeAPI ,
166- 'Expected WalkMeAPI to be present on the page'
167- ) ;
155+ var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e' ;
156+ var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=' ;
168157
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 ) ;
168+
169+ var payload = spy . args [ 0 ] [ 0 ] ;
170+
171+ assert . equal ( url , payload . url ) ;
169172 done ( ) ;
170- } ;
173+ } catch ( e ) {
174+ done ( e ) ;
175+ }
176+ } ;
171177
172- walkme . options . walkMeSystemId = walkMeSystemId ;
173- walkme . options . integrityHash = integrityHash ;
174- walkme . options . customDirecotry = bucket ;
178+ walkme . options . walkMeSystemId = walkMeSystemId ;
179+ walkme . options . integrityHash = integrityHash ;
175180
176- analytics . load ( walkme , function ( ) {
177- analytics . loaded ( tag ) ;
178- } ) ;
179- } catch ( e ) {
180- done ( e ) ;
181- }
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 ) ;
182216 } ) . timeout ( 10000 ) ;
183217 } ) ;
184218
0 commit comments