Skip to content

Commit ed9e11b

Browse files
fixes typo and related test (#771)
* fixes typo and related test some test were returning false positive, update the way to check on them * bump package version to 1.2.1 --------- Co-authored-by: Varadarajan V <[email protected]>
1 parent c577452 commit ed9e11b

File tree

3 files changed

+122
-80
lines changed

3 files changed

+122
-80
lines changed

integrations/walkme/lib/index.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ WalkMe.prototype.initialize = function() {
3838
window.walkme_load_in_iframe = true;
3939
}
4040

41-
var env = (this.options.environment && this.options.environment.toLowerCase());
41+
var env = "/"+(this.options.environment && this.options.environment.toLowerCase());
4242

43-
if (!env || env == "\/" || env == "\/production") {
43+
if (env === "/" || env === "/production") {
4444
env = "";
4545
}
4646

@@ -69,14 +69,22 @@ WalkMe.prototype.initialize = function() {
6969
}
7070

7171
var bucket = (this.options.customDirecotry) ? this.options.customDirecotry : 'users';
72-
var url = 'https://cdn.walkme.com/' + bucket + '/' + walkMeSystemId + '/' + env + '/walkme_' + sriSuffix + walkMeSystemId + '_https.js';
72+
var url = 'https://cdn.walkme.com/' + bucket + '/' + walkMeSystemId + env + '/walkme_' + sriSuffix + walkMeSystemId + '_https.js';
7373

74-
this.load({
74+
var payload = {
7575
url,
7676
hash: this.options.integrityHash
77-
});
77+
};
78+
79+
this.initializeTester(payload);
80+
this.load(payload);
7881
};
7982

83+
/**
84+
* Used for testing initialization
85+
*/
86+
WalkMe.prototype.initializeTester = function () {};
87+
8088
/**
8189
* Has the WalkMe library been loaded yet?
8290
*

integrations/walkme/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@walkme/analytics.js-integration-walkme",
33
"description": "The WalkMe analytics.js integration.",
4-
"version": "1.2.0",
4+
"version": "1.2.1",
55
"keywords": [
66
"analytics.js",
77
"analytics.js-integration",

integrations/walkme/test/index.test.js

Lines changed: 108 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ var sandbox = require('@segment/clear-env');
66
var tester = require('@segment/analytics.js-integration-tester');
77
var fmt = require('@segment/fmt');
88
var Walkme = require('../lib');
9+
var sinon = require('sinon');
10+
var assert = require('assert');
911

1012
describe('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

Comments
 (0)