11'use strict' ;
22
3- window . localStorage . setItem ( 'wm_segment' , true ) ;
4-
53var Analytics = require ( '@segment/analytics.js-core' ) . constructor ;
64var integration = require ( '@segment/analytics.js-integration' ) ;
75var sandbox = require ( '@segment/clear-env' ) ;
@@ -12,10 +10,13 @@ var Walkme = require('../lib');
1210describe ( 'WalkMe' , function ( ) {
1311 var analytics ;
1412 var walkme ;
13+
1514 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 : ''
1920 } ;
2021
2122 beforeEach ( function ( ) {
@@ -24,22 +25,27 @@ describe('WalkMe', function() {
2425 analytics . use ( Walkme ) ;
2526 analytics . use ( tester ) ;
2627 analytics . add ( walkme ) ;
28+ window . analytics = analytics ;
2729 } ) ;
2830
2931 afterEach ( function ( ) {
3032 analytics . restore ( ) ;
3133 analytics . reset ( ) ;
3234 walkme . reset ( ) ;
3335 sandbox ( ) ;
36+ window . analytics = undefined ;
3437 } ) ;
3538
3639 it ( 'should have the correct settings' , function ( ) {
3740 analytics . compare (
3841 Walkme ,
3942 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' , '' )
4349 ) ;
4450 } ) ;
4551
@@ -54,7 +60,17 @@ describe('WalkMe', function() {
5460 analytics . initialize ( ) ;
5561 analytics . page ( ) ;
5662 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 ) ;
5874 } ) ;
5975 } ) ;
6076 } ) ;
@@ -64,37 +80,74 @@ describe('WalkMe', function() {
6480 analytics . spy ( walkme , 'load' ) ;
6581 } ) ;
6682
83+ this . afterEach ( ( ) => {
84+ window . _walkmeInternals . Segment = false
85+ } )
86+
6787 it ( 'should load walkme test lib' , function ( done ) {
6888 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+
69105 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'
77131 ) ;
78132
79- analytics . identify ( ) ;
133+ done ( ) ;
134+ } ;
80135
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=' ;
86138
87- done ( ) ;
88- } ;
139+ analytics . load ( walkme , function ( ) {
140+ analytics . loaded ( tag ) ;
89141 } ) ;
90142 } catch ( e ) {
91143 done ( e ) ;
92144 }
93- } ) ;
145+ } ) . timeout ( 10000 ) ;
94146 } ) ;
95147
96148 describe ( 'after loading' , function ( ) {
97149 beforeEach ( function ( done ) {
150+ window . analytics = analytics ;
98151 analytics . once ( 'ready' , done ) ;
99152 analytics . initialize ( ) ;
100153 analytics . page ( ) ;
@@ -145,7 +198,7 @@ describe('WalkMe', function() {
145198 window . walkme_ready = function ( ) {
146199 done ( ) ;
147200 } ;
148- } ) ;
201+ } ) . timeout ( 10000 ) ;
149202 } ) ;
150203 } ) ;
151204} ) ;
0 commit comments