Skip to content

Commit

Permalink
fix(karma tests): add further tests for prev and next (public api) & …
Browse files Browse the repository at this point in the history
…add saucelabs
  • Loading branch information
Maximilian Heinz committed Oct 15, 2015
1 parent 176671e commit b737579
Show file tree
Hide file tree
Showing 5 changed files with 305 additions and 9 deletions.
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ after_success:
branches:
except:
- "/^v\\d+\\.\\d+\\.\\d+$/"
env:
global:
- secure: F218QlWqP6+TvYG2cttLd7G7om3NUm6Qcvz6o3G6OV03YZ2NuTTR77Fm29y7Br4ojMzZ+fzABcbGzQPriwVcEQ9aPF3NsCsTfdocg5pkKXKxCXrUmI/IOkL0XNyyGyA6eUKDxSWunPt2m5rfw8yjQyjQwMzVQ9TwfLoJLw9N2EU=
- secure: Ih8EFJpHTc2d5PY0upF9Spui60QsIuLJ83GvASn6Fz9qXvvt6MD++qLvZi0RU8nugUl8niXLK5KrX3LFL9YtIbaIUdHt76Yz6oAys8uyp2Y61aqf8FCdeTBPOvjRXm3bU1PDod+1RryMxK0REcnWxwOxGfve/zgWDN1tzQ8ab6I=
60 changes: 53 additions & 7 deletions karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,56 @@
'use strict';

module.exports = function (config) {
module.exports = function(config) {
if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
console.log('Make sure the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are set.');
process.exit(1);
}

var customLaunchers = {
sl_chrome: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 7',
version: '35'
},

sl_firefox: {
base: 'SauceLabs',
browserName: 'firefox',
version: '30'
},

sl_ios_safari: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.9',
version: '7.1'
},

sl_ie_11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8.1',
version: '11'
}
};

config.set({
sauceLabs: {
testName: 'lory Browser Tests'
},

customLaunchers: customLaunchers,
browsers: Object.keys(customLaunchers),
reporters: ['dots', 'saucelabs'],

frameworks: [
'mocha',
'chai',
'fixture'
],

reporters: [
'mocha'
],

files: [
files: [
'dist/lory.js',
'test/lory.test.js',
'demo/app.css',
Expand All @@ -27,11 +65,19 @@ module.exports = function (config) {
'karma-mocha-reporter',
'karma-chai',
'karma-fixture',
'karma-chrome-launcher',
'karma-phantomjs-launcher',
'karma-ie-launcher',
'karma-opera-launcher',
'karma-firefox-launcher',
'karma-safari-launcher',
'karma-html2js-preprocessor'
],

preprocessors: {
'test/*.html': ['html2js']
}
},

singleRun: true
});
};
54 changes: 54 additions & 0 deletions local.karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
'use strict';

module.exports = function (config) {
config.set({
frameworks: [
'mocha',
'chai',
'fixture'
],

reporters: [
'mocha'
],

files: [
'dist/lory.js',
'test/lory.test.js',
'demo/app.css',

{
pattern: 'test/*.html'
}
],

browsers: [
'Chrome'
// 'ChromeCanary',
// 'PhantomJS',
// 'Firefox',
// 'Opera',
// 'Safari'
],

plugins: [
'karma-mocha',
'karma-mocha-reporter',
'karma-chai',
'karma-fixture',
'karma-chrome-launcher',
'karma-phantomjs-launcher',
'karma-ie-launcher',
'karma-opera-launcher',
'karma-firefox-launcher',
'karma-safari-launcher',
'karma-html2js-preprocessor'
],

preprocessors: {
'test/*.html': ['html2js']
},

singleRun: true
});
};
12 changes: 10 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,17 @@
"eslint-plugin-standard": "1.3.1",
"karma-chai": "0.1.0",
"karma-chrome-launcher": "0.2.0",
"karma-firefox-launcher": "^0.1.6",
"karma-fixture": "0.2.5",
"karma-html2js-preprocessor": "0.1.0",
"karma-ie-launcher": "^0.2.0",
"karma-mocha": "0.2.0",
"karma-mocha-reporter": "1.1.1",
"karma-opera-launcher": "^0.3.0",
"karma-phantomjs-launcher": "^0.2.1",
"karma-safari-launcher": "^0.1.1",
"karma-sauce-launcher": "^0.2.14",
"phantomjs": "^1.9.18",
"rimraf": "2.4.3",
"semantic-release": "^4.3.5",
"uglify-js": "2.5.0",
Expand All @@ -57,9 +64,10 @@
"clean": "rimraf dist/* && rimraf demo/js/* && rimraf src/jquery.lory.js",
"check": "npm run lint -s && dependency-check package.json --entry src",
"lint": "eslint src",
"karma": "karma start",
"saucelabs": "karma start",
"karma-local": "karma start local.karma.conf.js",
"prebuild": "cat src/lory.js src/jquery.plugin.js > src/jquery.lory.js",
"build": "npm run lint && webpack",
"build": "npm run lint && webpack && npm run karma-local",
"uglify": "uglifyjs dist/lory.js -o dist/lory.min.js --compress --mangle && uglifyjs dist/jquery.lory.js -o dist/jquery.lory.min.js --compress --mangle",
"postbuild": "npm run uglify && cp -r dist/* demo/js/",
"start": "webpack-dev-server",
Expand Down
184 changes: 184 additions & 0 deletions test/lory.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,65 @@ describe('.next()', function () {
});
});

describe('.next() called 2x', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');
expectedOffset = (element.querySelector('.js_slide').offsetWidth * 2 + 20) * -1;
instance = lory(element);
});

it('offset has to be the expectedOffset', function() {
for (var i = 0; i < 2; i++) {
instance.next();
}

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.next() called 4x', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');
expectedOffset = (element.querySelector('.js_slide').offsetWidth + 10) * -4;
instance = lory(element);
});

it('offset has to be the expectedOffset', function() {

for (var i = 0; i < 4; i++) {
instance.next();
}

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.prev()', function () {
var instance;
var element;
Expand Down Expand Up @@ -170,6 +229,131 @@ describe('.prev()', function () {
});
});

describe('.prev() called 2x without infinite', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');
expectedOffset = 0;
instance = lory(element);
});

it('offset has to be the expectedOffset', function() {
for (var i = 0; i < 2; i++) {
instance.prev();
}

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.prev() called 4x without infinite', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');
expectedOffset = 0;
instance = lory(element);
});

it('offset has to be the expectedOffset', function() {
for (var i = 0; i < 4; i++) {
instance.prev();
}

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.prev() called 2x with infinite', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');

// has to be at slide 5
expectedOffset = (element.querySelector('.js_slide').offsetWidth + 10) * -5;

instance = lory(element, {
infinite: true
});
});

it('offset has to be the expectedOffset', function() {
instance.prev();
instance.prev();

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.prev() called 4x with infinite', function() {
var instance;
var element;
var expectedOffset;

before(function () {
fixture.setBase('test');
});

beforeEach(function () {
this.result = fixture.load('test.html');

element = fixture.el.querySelector('.js_simple');

// has to be at slide 3
expectedOffset = (element.querySelector('.js_slide').offsetWidth + 10) * -3;

instance = lory(element, {
infinite: true
});
});

it('offset has to be the expectedOffset', function() {
for (var i = 0; i < 4; i++) {
instance.prev();
}

var transform = document.querySelector('.js_slides').style.transform
var offset = new WebKitCSSMatrix(document.querySelector('.js_slides').style.transform).m41

assert.equal(offset, expectedOffset);
});
});

describe('.destroy()', function () {
var instance;
var element;
Expand Down

0 comments on commit b737579

Please sign in to comment.