Skip to content

Commit

Permalink
Add initial wdio v4 changes
Browse files Browse the repository at this point in the history
  • Loading branch information
philipwalton committed Apr 6, 2016
1 parent 4412989 commit 6f64372
Show file tree
Hide file tree
Showing 11 changed files with 352 additions and 331 deletions.
3 changes: 0 additions & 3 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{
"parserOptions": {
"ecmaVersion": 6,
},
"env": {
"browser": true,
"node": true,
Expand Down
13 changes: 6 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,23 @@
"delegate": "^3.0.0"
},
"devDependencies": {
"browserify": "^12.0.1",
"browserify": "^13.0.0",
"connect": "^3.4.0",
"gulp": "^3.9.0",
"gulp-eslint": "^2.0.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.5.1",
"gulp-util": "^3.0.7",
"gulp-webdriver": "^1.0.2",
"lodash": "^3.10.1",
"gulp-webdriver": "^2.0.1",
"lodash": "^4.8.2",
"mocha": "^2.3.4",
"ngrok": "^2.1.6",
"saucelabs": "^1.0.1",
"selenium-server-standalone-jar": "^2.48.2",
"selenium-webdriver": "^2.48.2",
"serve-static": "^1.10.0",
"uglify-js": "^2.6.1",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"webdriverio": "^3.3.0"
"wdio-mocha-framework": "^0.2.12",
"wdio-sauce-service": "^0.2.2",
"webdriverio": "^4.0.5"
}
}
2 changes: 1 addition & 1 deletion test/analytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/


var get = require('lodash/object/get');
var get = require('lodash/get');


module.exports = {
Expand Down
33 changes: 17 additions & 16 deletions test/autotrack.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ var constants = require('../lib/constants');
describe('autotrack', function() {

afterEach(function() {
return browser
browser
.execute(ga.clearHitData)
.execute(ga.run, 'eventTracker:remove')
.execute(ga.run, 'mediaQueryTracker:remove')
Expand All @@ -34,11 +34,11 @@ describe('autotrack', function() {
.execute(ga.run, 'remove');
});

it('should provide all plugins', function *() {
it('should provide all plugins', function() {

var gaplugins = (yield browser
var gaplugins = browser
.url('/test/autotrack.html')
.execute(ga.getProvidedPlugins))
.execute(ga.getProvidedPlugins)
.value;

assert(gaplugins.Autotrack);
Expand All @@ -50,16 +50,15 @@ describe('autotrack', function() {
assert(gaplugins.UrlChangeTracker);
});


it('should provide plugins even if sourced before the tracking snippet',
function *() {
function() {

var gaplugins = (yield browser
var gaplugins = browser
.url('/test/autotrack-reorder.html')
.execute(ga.run, 'create', 'UA-XXXXX-Y', 'auto')
.execute(ga.trackHitData)
.execute(ga.run, 'require', 'autotrack')
.execute(ga.getProvidedPlugins))
.execute(ga.getProvidedPlugins)
.value;

assert(gaplugins.Autotrack);
Expand All @@ -70,22 +69,23 @@ describe('autotrack', function() {
assert(gaplugins.SocialTracker);
assert(gaplugins.UrlChangeTracker);

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'send', 'pageview')
.execute(ga.getHitData)).value;
.execute(ga.getHitData)
.value;

assert.equal(hitData.length, 1);
});


it('should work with renaming the global object', function *() {
it('should work with renaming the global object', function() {

var gaplugins = (yield browser
var gaplugins = browser
.url('/test/autotrack-rename.html')
.execute(ga.run, 'create', 'UA-XXXXX-Y', 'auto')
.execute(ga.trackHitData)
.execute(ga.run, 'require', 'autotrack')
.execute(ga.getProvidedPlugins))
.execute(ga.getProvidedPlugins)
.value;

assert(gaplugins.Autotrack);
Expand All @@ -96,17 +96,18 @@ describe('autotrack', function() {
assert(gaplugins.SocialTracker);
assert(gaplugins.UrlChangeTracker);

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'send', 'pageview')
.execute(ga.getHitData)).value;
.execute(ga.getHitData)
.value;

assert.equal(hitData.length, 1);
});


it('should include the &did param with all hits', function() {

return browser
browser
.url('/test/autotrack.html')
.execute(ga.run, 'create', 'UA-XXXXX-Y', 'auto')
.execute(ga.trackHitData)
Expand Down
32 changes: 16 additions & 16 deletions test/event-tracker.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,28 @@ var constants = require('../lib/constants');
describe('eventTracker', function() {

before(function() {
return browser.url('/test/event-tracker.html');
browser.url('/test/event-tracker.html');
});

beforeEach(function() {
return browser
browser
.execute(ga.run, 'create', 'UA-XXXXX-Y', 'auto')
.execute(ga.trackHitData);
});

afterEach(function () {
return browser
browser
.execute(ga.clearHitData)
.execute(ga.run, 'eventTracker:remove')
.execute(ga.run, 'remove');
});

it('should support declarative event binding to DOM elements', function *() {
it('should support declarative event binding to DOM elements', function() {

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'require', 'eventTracker')
.click('#event-button')
.execute(ga.getHitData))
.execute(ga.getHitData)
.value;

assert.equal(hitData[0].eventCategory, 'foo');
Expand All @@ -54,12 +54,12 @@ describe('eventTracker', function() {
});


it('should support only specifying some of the event fields', function *() {
it('should support only specifying some of the event fields', function() {

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'require', 'eventTracker')
.click('#event-button-some-fields')
.execute(ga.getHitData))
.execute(ga.getHitData)
.value;

assert.equal(hitData[0].eventCategory, 'foo');
Expand All @@ -70,24 +70,24 @@ describe('eventTracker', function() {


it('should not capture clicks without the category and action fields',
function *() {
function() {

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'require', 'eventTracker')
.click('#event-button-missing-fields')
.execute(ga.getHitData))
.execute(ga.getHitData)
.value;

assert.equal(hitData.length, 0);
});


it('should support customizing the attribute prefix', function *() {
it('should support customizing the attribute prefix', function() {

var hitData = (yield browser
var hitData = browser
.execute(ga.run, 'require', 'eventTracker', {attributePrefix: ''})
.click('#event-button-custom-prefix')
.execute(ga.getHitData))
.execute(ga.getHitData)
.value;

assert.equal(hitData[0].eventCategory, 'foo');
Expand All @@ -99,7 +99,7 @@ describe('eventTracker', function() {

it('should include the &did param with all hits', function() {

return browser
browser
.execute(ga.run, 'require', 'eventTracker')
.execute(ga.run, 'send', 'pageview')
.waitUntil(ga.hitDataMatches([['[0].devId', constants.DEV_ID]]));
Expand Down
50 changes: 26 additions & 24 deletions test/media-query-tracker.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,24 +50,24 @@ var autotrackOpts = {

describe('mediaQueryTracker', function() {

before(function *() {
browserCaps = (yield browser.session()).value;
before(function() {
browserCaps = browser.session().value;

// Loads the autotrack file since no custom HTML is needed.
yield browser.url('/test/autotrack.html');
browser.url('/test/autotrack.html');
});


beforeEach(function() {
return browser
browser
.setViewportSize({width: 800, height: 600}, false)
.execute(ga.run, 'create', 'UA-XXXXX-Y', 'auto')
.execute(ga.trackHitData);
});


afterEach(function () {
return browser
browser
.execute(ga.clearHitData)
.execute(ga.run, 'mediaQueryTracker:remove')
.execute(ga.run, 'remove');
Expand All @@ -78,7 +78,7 @@ describe('mediaQueryTracker', function() {

if (notSupportedInBrowser()) return;

return browser
browser
.execute(ga.run, 'require', 'mediaQueryTracker', autotrackOpts)
.waitUntil(ga.trackerDataMatches([
['dimension1', 'lg'],
Expand All @@ -91,13 +91,15 @@ describe('mediaQueryTracker', function() {

if (notSupportedInBrowser()) return;

return browser
browser
.execute(ga.run, 'require', 'mediaQueryTracker', autotrackOpts)
.setViewportSize({width: 400, height: 400}, false)
.waitUntil(ga.trackerDataMatches([
['dimension1', 'sm'],
['dimension2', 'sm']
]))
]));

browser
.waitUntil(ga.hitDataMatches([
['[0].eventCategory', 'Width'],
['[0].eventAction', 'change'],
Expand All @@ -109,20 +111,20 @@ describe('mediaQueryTracker', function() {
});


it('should wait for the timeout to set or send changes', function *() {
it('should wait for the timeout to set or send changes', function() {

if (notSupportedInBrowser()) return;

yield browser
browser
.execute(ga.run, 'require', 'mediaQueryTracker', autotrackOpts)
.setViewportSize({width: 400, height: 400}, false);

var timeoutStart = Date.now();
yield browser.waitUntil(ga.trackerDataMatches([
browser.waitUntil(ga.trackerDataMatches([
['dimension1', 'sm'],
['dimension2', 'sm']
]))
.waitUntil(ga.hitDataMatches([
]));
browser.waitUntil(ga.hitDataMatches([
['length', 2]
]));
var timeoutDuration = Date.now() - timeoutStart;
Expand All @@ -131,26 +133,26 @@ describe('mediaQueryTracker', function() {
});


it('should support customizing the timeout period', function *() {
it('should support customizing the timeout period', function() {

if (notSupportedInBrowser()) return;

yield browser
browser
.execute(ga.run, 'require', 'mediaQueryTracker',
Object.assign({}, autotrackOpts, {mediaQueryChangeTimeout: 0}))
.setViewportSize({width: 400, height: 400}, false);

var shortTimeoutStart = Date.now();
yield browser.waitUntil(ga.trackerDataMatches([
browser.waitUntil(ga.trackerDataMatches([
['dimension1', 'sm'],
['dimension2', 'sm']
]))
.waitUntil(ga.hitDataMatches([
]));
browser.waitUntil(ga.hitDataMatches([
['length', 2]
]));
var shortTimeoutDuration = Date.now() - shortTimeoutStart;

yield browser
browser
.execute(ga.clearHitData)
.execute(ga.run, 'mediaQueryTracker:remove')
.execute(ga.run, 'remove')
Expand All @@ -161,11 +163,11 @@ describe('mediaQueryTracker', function() {
.setViewportSize({width: 400, height: 400}, false);

var longTimeoutStart = Date.now();
yield browser.waitUntil(ga.trackerDataMatches([
browser.waitUntil(ga.trackerDataMatches([
['dimension1', 'sm'],
['dimension2', 'sm']
]))
.waitUntil(ga.hitDataMatches([
]));
browser.waitUntil(ga.hitDataMatches([
['length', 2]
]));
var longTimeoutDuration = Date.now() - longTimeoutStart;
Expand All @@ -180,7 +182,7 @@ describe('mediaQueryTracker', function() {

if (notSupportedInBrowser()) return;

return browser
browser
.execute(requireMediaQueryTrackerWithChangeTemplate)
.setViewportSize({width: 400, height: 400}, false)
.waitUntil(ga.hitDataMatches([
Expand All @@ -192,7 +194,7 @@ describe('mediaQueryTracker', function() {

it('should include the &did param with all hits', function() {

return browser
browser
.execute(ga.run, 'require', 'mediaQueryTracker')
.execute(ga.run, 'send', 'pageview')
.waitUntil(ga.hitDataMatches([['[0].devId', constants.DEV_ID]]));
Expand Down
Loading

0 comments on commit 6f64372

Please sign in to comment.