Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions integrations/walkme/lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ WalkMe.prototype.initialize = function() {
window.walkme_load_in_iframe = true;
}

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

if (!env || env == "\/" || env == "\/production") {
if (env === "/" || env === "/production") {
env = "";
}

Expand Down Expand Up @@ -69,14 +69,22 @@ WalkMe.prototype.initialize = function() {
}

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

this.load({
var payload = {
url,
hash: this.options.integrityHash
});
};

this.initializeTester(payload);
this.load(payload);
};

/**
* Used for testing initialization
*/
WalkMe.prototype.initializeTester = function () {};

/**
* Has the WalkMe library been loaded yet?
*
Expand Down
2 changes: 1 addition & 1 deletion integrations/walkme/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@walkme/analytics.js-integration-walkme",
"description": "The WalkMe analytics.js integration.",
"version": "1.2.0",
"version": "1.2.1",
"keywords": [
"analytics.js",
"analytics.js-integration",
Expand Down
182 changes: 108 additions & 74 deletions integrations/walkme/test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ var sandbox = require('@segment/clear-env');
var tester = require('@segment/analytics.js-integration-tester');
var fmt = require('@segment/fmt');
var Walkme = require('../lib');
var sinon = require('sinon');
var assert = require('assert');

describe('WalkMe', function() {
var analytics;
Expand Down Expand Up @@ -87,98 +89,130 @@ describe('WalkMe', function() {
})

it('should load walkme test lib', function(done) {
try {
var tag = fmt(
'<script src="https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js" >',
options.walkMeSystemId.toLowerCase(),
'test',
options.walkMeSystemId.toLowerCase()
var spy = sinon.spy(walkme, 'initializeTester');
var url = fmt(
'https://cdn.walkme.com/users/%s/%s/walkme_%s_https.js',
options.walkMeSystemId.toLowerCase(),
'test',
options.walkMeSystemId.toLowerCase()
);

window.walkme_ready = function() {
analytics.assert(
!!window.WalkMeAPI,
'Expected WalkMeAPI to be present on the page'
);

window.walkme_ready = function() {
analytics.assert(
!!window.WalkMeAPI,
'Expected WalkMeAPI to be present on the page'
);
var payload = spy.args[0][0];

try {
assert.equal(url, payload.url);
done();
};

analytics.load(walkme, function() {
analytics.loaded(tag);
analytics.identify('UserId');
});
} catch (e) {
done(e);
}
}
catch(e) {
done(e);
}
};

analytics.load(walkme, function() {
analytics.identify('UserId');
});
}).timeout(10000);

it('should load walkme SRI', function(done) {
try {
var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e';
var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=';

var tag = fmt(
'<script src="https://cdn.walkme.com/users/%s/%s/walkme_private_%s_https.js" crossorigin="" integrity="%s" >',
walkMeSystemId,
'test',
walkMeSystemId,
integrityHash
);
it('should load walkme Prod Environment', function(done) {
var spy = sinon.spy(walkme, 'initializeTester');

window.walkme_ready = function() {
analytics.assert(
!!window.WalkMeAPI,
'Expected WalkMeAPI to be present on the page'
);
var tag = fmt(
'<script src="https://cdn.walkme.com/users/%s/walkme_%s_https.js" >',
options.walkMeSystemId.toLowerCase(),
options.walkMeSystemId.toLowerCase()
);

walkme.options.environment = 'production';

window.walkme_ready = function() {
try {
assert.equal(!!window.WalkMeAPI, true);

var payload = spy.args[0][0];
assert.equal(tag, '<script src="'+payload.url+'" >')
done();
};
}
catch(e) {
done(e);
}

walkme.options.walkMeSystemId = walkMeSystemId;
walkme.options.integrityHash = integrityHash;
};

analytics.load(walkme, function() {
analytics.loaded(tag);
});
} catch (e) {
done(e);
}
analytics.load(walkme, function() {
analytics.loaded(tag);
});
}).timeout(10000);

it('should setup bucket', function(done) {
try {
var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e';
var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=';
var bucket = 'users';

var tag = fmt(
'<script src="https://cdn.walkme.com/%s/%s/%s/walkme_%s_https.js" crossorigin="" >',
bucket,
walkMeSystemId,
'test',
walkMeSystemId
);
it('should load walkme SRI', function(done) {
var spy = sinon.spy(walkme, 'initializeTester');

window.walkme_ready = function() {
analytics.assert(
!!window.WalkMeAPI,
'Expected WalkMeAPI to be present on the page'
);
var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e';
var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=';

var url = fmt(
'https://cdn.walkme.com/users/%s/%s/walkme_private_%s_https.js',
walkMeSystemId,
'test',
walkMeSystemId,
);

window.walkme_ready = function() {
try {
assert.equal(!!window.WalkMeAPI, true);

var payload = spy.args[0][0];

assert.equal(url, payload.url);
done();
};
} catch (e) {
done(e);
}
};

walkme.options.walkMeSystemId = walkMeSystemId;
walkme.options.integrityHash = integrityHash;
walkme.options.customDirecotry = bucket;
walkme.options.walkMeSystemId = walkMeSystemId;
walkme.options.integrityHash = integrityHash;

analytics.load(walkme, function() {
analytics.loaded(tag);
});
} catch (e) {
done(e);
}
analytics.load(walkme, function() { });
}).timeout(10000);

it('should setup bucket', function(done) {
var walkMeSystemId = '42b2849a0ca54749bd485bcbd5bcc64e';
var integrityHash = 'sha256-FjbibNOUzdIz+mtyFRU7NHj1G5tPgzOuJNCkRyDmXr8=';
var bucket = 'users';

var spy = sinon.spy(walkme, 'initializeTester');
var url = fmt(
'https://cdn.walkme.com/%s/%s/%s/walkme_private_%s_https.js',
bucket,
walkMeSystemId,
'test',
walkMeSystemId
);

window.walkme_ready = function() {
var payload = spy.args[0][0];

try {
assert.equal(!!window.WalkMeAPI, true);
assert.equal(url, payload.url);
done();
}
catch(e) {
done(e);
}
};

walkme.options.walkMeSystemId = walkMeSystemId;
walkme.options.integrityHash = integrityHash;
walkme.options.customDirecotry = bucket;

analytics.load(walkme);
}).timeout(10000);
});

Expand Down