Skip to content

Commit

Permalink
test(browsers): add multiple browser testing with saucelabs
Browse files Browse the repository at this point in the history
  • Loading branch information
javiercejudo committed Apr 26, 2015
1 parent 01f7064 commit ba9114c
Show file tree
Hide file tree
Showing 7 changed files with 163 additions and 13 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ pids
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# environment vars
.env

# Coverage directory used by tools like istanbul
coverage
.coveralls.yml
Expand Down
23 changes: 17 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
language: node_js
node_js:
- 'iojs'
- '0.10'
- '0.12'
- '0.10'
env:
matrix:
- BROWSER=PhantomJS
- BROWSER=SL_Chrome
- BROWSER=SL_Firefox
- BROWSER=SL_IE_10
- BROWSER=SL_IE_11
global:
- SAUCE_USERNAME=linear-converter
- secure: WG2ZkkqOsZAyokorUHfz3HhS5negUvvplwSbb6zmb3PGjRUS7JH4WO5wXHtG9qElWsnDSYVkXKKSQrx7SygA6ljRasjLz99PLBRPXYXbW7FYw3GAohj9PlFoV5VCRfdN0Vjdlp9NtB6fz14GBCZMuO7LbwBtoAdj1aJ8C4+ZKns=
matrix:
fast_finish: true
before_install:
- npm install -g gulp
- npm install -g gulp
script:
- gulp test
- gulp test
- ./node_modules/karma/bin/karma start --single-run --browsers $BROWSER
after_success:
- gulp coveralls
- gulp coveralls
128 changes: 128 additions & 0 deletions karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
// Karma configuration

module.exports = function(config) {
config.set({

// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',


// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha'],


// list of files / patterns to load in the browser
files: [
'node_modules/gulp-mocha/node_modules/mocha/mocha.js',
'node_modules/should/should.js',
'dist/linear-converter.js',
'test/browser/*.js'
],


// list of files to exclude
exclude: [
],


// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
},


// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],


// web server port
port: 9876,


// enable / disable colors in the output (reporters and logs)
colors: true,


// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,


// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,

sauceLabs: {
username: process.env.SAUCE_USERNAME,
accessKey: process.env.SAUCE_ACCESS_KEY,
build: process.env.TRAVIS_BUILD_NUMBER,
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,
startConnect: false,
testName: 'linear-converter: browser tests'
},


customLaunchers: {
'SL_Chrome': {
base: 'SauceLabs',
browserName: 'chrome'
},
'SL_Firefox': {
base: 'SauceLabs',
browserName: 'firefox'
},
'SL_Safari': {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.10'
},
'SL_IE_9': {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 2008',
version: '9'
},
'SL_IE_10': {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 2012',
version: '10'
},
'SL_IE_11': {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8.1',
version: '11'
},
'SL_Opera': {
base: 'SauceLabs',
browserName: 'opera'
},
'SL_Android': {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
},
'SL_iOS': {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.9',
version: '7.1'
},
},


// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: [
'PhantomJS'
],


// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};
7 changes: 7 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@
"gulp-sourcemaps": "^1.5.1",
"gulp-uglify": "^1.1.0",
"gulp-util": "^3.0.4",
"karma": "^0.12.31",
"karma-chrome-launcher": "^0.1.8",
"karma-firefox-launcher": "^0.1.4",
"karma-mocha": "^0.1.10",
"karma-phantomjs-launcher": "^0.1.4",
"karma-sauce-launcher": "^0.2.10",
"mocha": "^2.2.4",
"rimraf": "^2.3.2",
"should": "^5.0.0",
"sinon": "^1.13.0",
Expand Down
9 changes: 6 additions & 3 deletions test/browser/browser.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
/*jshint node:true, mocha:true */
/*global converter */

(function() {
(function($hould) {
'use strict';

var converter = require('linear-converter');

describe('browser support', function() {
it('should cover the basics', function() {
// main converter method
Expand Down Expand Up @@ -31,8 +33,9 @@

// calculate the coefficients for the underlying
// linear function from a preset
converter.getCoefficientA([[0, 1], [1, 3]]).should.be.exactly(2);
// using Should() to make IE9 happy: https://github.com/tj/should.js/wiki/Known-Bugs#ie9
$hould(converter.getCoefficientA([[0, 1], [1, 3]])).be.exactly(2);
converter.getCoefficientB([[0, 1], [1, 3]]).should.be.exactly(1);
});
});
}());
}(Should));
3 changes: 0 additions & 3 deletions test/browser/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@
<script>
mocha.setup('bdd');
</script>
<script>
var converter = require('linear-converter');
</script>
<script src="browser.js"></script>
<script>
mocha.checkLeaks();
Expand Down
3 changes: 2 additions & 1 deletion test/iojs/walk-through.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ describe('walk-through', function() {

// easy inversion of presets
var invert = converter.invertPreset;
var fahrenheitToCelsius = invert(temp.celsiusToFahrenheit);

convert(77, invert(temp.celsiusToFahrenheit)).should.be.exactly(25);
convert(77, fahrenheitToCelsius).should.be.exactly(25);

// convert presets any to any using inversion and composition
var compose = converter.composePresets;
Expand Down

0 comments on commit ba9114c

Please sign in to comment.