Skip to content

Commit

Permalink
Merge pull request #60 from meandmax/add-further-tests
Browse files Browse the repository at this point in the history
test(lory): add further tests & integration of saucelabs
  • Loading branch information
meandmax committed Oct 19, 2015
2 parents 9e4bbdf + 6347909 commit 7eb4341
Show file tree
Hide file tree
Showing 5 changed files with 296 additions and 3 deletions.
6 changes: 5 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ before_install:
before_script:
- npm prune
- 'curl -Lo travis_after_all.py https://git.io/vLSON'
script: "npm run build"
script: "npm run travis"
after_success:
- python travis_after_all.py
- export $(cat .to_export_back)
- npm run semantic-release
branches:
except:
- "/^v\\d+\\.\\d+\\.\\d+$/"
env:
global:
- secure: F218QlWqP6+TvYG2cttLd7G7om3NUm6Qcvz6o3G6OV03YZ2NuTTR77Fm29y7Br4ojMzZ+fzABcbGzQPriwVcEQ9aPF3NsCsTfdocg5pkKXKxCXrUmI/IOkL0XNyyGyA6eUKDxSWunPt2m5rfw8yjQyjQwMzVQ9TwfLoJLw9N2EU=
- secure: Ih8EFJpHTc2d5PY0upF9Spui60QsIuLJ83GvASn6Fz9qXvvt6MD++qLvZi0RU8nugUl8niXLK5KrX3LFL9YtIbaIUdHt76Yz6oAys8uyp2Y61aqf8FCdeTBPOvjRXm3bU1PDod+1RryMxK0REcnWxwOxGfve/zgWDN1tzQ8ab6I=
17 changes: 16 additions & 1 deletion karma.conf.js → local.karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,31 @@ module.exports = function (config) {
}
],

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

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

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

singleRun: true
});
};
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,20 @@
"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",
"sauce-connect-launcher": "^0.13.0",
"saucelabs": "^1.0.1",
"semantic-release": "^4.3.5",
"uglify-js": "2.5.0",
"webpack": "1.12.2",
Expand All @@ -58,9 +67,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",
"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",
"travis": "npm run build && karma start saucelabs.karma.conf.js",
"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
97 changes: 97 additions & 0 deletions saucelabs.karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
'use strict';

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 = {
sauceLabsInternetExplorer9: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 7',
version: '9.0'
},
sauceLabsInternetExplorer10: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 7',
version: '10.0'
},
sauceLabsInternetExplorer11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 7',
version: '11.0'
},
sauceLabsChrome: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Linux',
version: '39.0'
},
sauceLabsFirefox: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Linux',
version: '34.0'
},
sauceLabsSafari7: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'Mac 10.9',
version: '7.0'
},
sauceLabsSafari8: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'Mac 10.10',
version: '8.0'
}
};

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

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

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

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

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

plugins: [
'karma-mocha',
'karma-mocha-reporter',
'karma-chai',
'karma-fixture',
'karma-sauce-launcher',
'karma-html2js-preprocessor'
],

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

singleRun: true
});
};
167 changes: 167 additions & 0 deletions test/lory.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,59 @@ 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();
}

assert.equal(instance.returnIndex(), 2);
});
});

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();
}

assert.equal(instance.returnIndex(), 4);
});
});

describe('.prev()', function () {
var instance;
var element;
Expand Down Expand Up @@ -170,6 +223,120 @@ 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();
}

assert.equal(instance.returnIndex(), 0);
});
});

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();
}

assert.equal(instance.returnIndex(), 0);
});
});

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() {
for (var i = 0; i < 2; i++) {
instance.prev();
}

assert.equal(instance.returnIndex(), 5);
});
});

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();
}

assert.equal(instance.returnIndex(), 3);
});
});

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

0 comments on commit 7eb4341

Please sign in to comment.