diff --git a/.travis.yml b/.travis.yml index b058f2ceb..63f73619f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ cache: directories: - $HOME/travis-phantomjs script: - - 'if [ -n "$ARTIFACT" ]; then make test; else make test-sauce; fi' + - make test addons: artifacts: paths: @@ -20,19 +20,8 @@ addons: env: global: - ARTIFACTS_BUCKET=recurly-js - - secure: dzZNq3i4t8fMRoQWSKr4QQNSh4dBk9u1pDtwBh+dNx4bbgNC2EyXOcjL6vTPH0poDf71ggbt5VpyiqebU9bTA3+hMrMLJPPqKT54z7o58ESoUB1VHzWh40p++2uvZwIJC2HSWTdQDp/Hl3JDG4dCyD4sxuJrACa50gHp8xj0Pcc= - - secure: HcEuKA0wbmbdDo9xXzZ8ICZW750EYNKzqeAYIXJWAVhnMwKQ/LXbJhbBhV4jSjWc73pTAi9ZD57UqxoH4/14KpwK8MKPxN5QZV5l4O/1HtOyL/REMhM1dr9RCM0wbSPMeVU/vwggIeW/YSk2WHYEc+smtWAjQeJJiV8+WS4eAu8= + - secure: U0dvpEjblZ3i+knw/cOWWgLvHUz/L9vN7Kv5VKDJ5ydvLy/1Tcueokp4hL7jhu4zwzlJto6MdFG1uKXr97zs+ETV9clYtRFBF/4YlAGs8sQcvPu4BOyH9pUJ77tnNR2ZX62wik9UFl6LmJOBpCjVkp+kh6it44QJm4Zv03Yx47w= + - secure: wrAUnHRseJQrRUqoKWCY/Sw8Wd21kssvYiQ26HpjNc8Q3+uQY6IAMwyyyRRbr65nwHnYrk6KJfSEHYgmQbMeie/3+LseXbDGd9BmWAvujI2ZXNPjFxhSA4gmBvVtT/57fZaCdc8pAnGLb8OwiBSgQN0UJ55Kr59Yjhi3ehBZd1Q= - secure: jQt9v3zZAKmq774J4TOm8a6Zgxea83faf++RRM3azsgLSz5vLfZK6IH4UiC9SmiMZVTYa87mTA71+IO8Mg0lUDJoF8F3EHB+U957el4fDdGak5OULz6FCh0tME1lsstHi+GJ3GtdJGA1DsC6bUR+DsPB5anZZ+wl3QGdUCJToeY= - secure: Bv5h9pXMa5O0EdOuN2Dt1n9/+T1dMHimnn6XQb0ozjfwzjfhcPR6eKHkOxDVJ0c1rzne48ql0FK0P42QaCdZpEmy8wUyUTmI1gTMhjILcFbQFk+r9GOwGJsPttLNRS2J9+8u5tEDZjf5LiCnPBjy6vIinK7nlas93xTLTQwNEmI= - secure: yIrHdkLhWtO37N24cRU71PK80zvkPzlJ1Jm+1MS3C6/icgJ8At1N/UgpBdxuBs1tlJm1O7Ahk+/MhpGWlspx9tCF7Hzw9Rj0xpKhqsvM155zgH582xNPwNebiCr/tmsH2/ELgFBBgC9sCW5luzeKx9nyuedGA4fmD2fK5Phc5EE= - matrix: - # - BROWSER: chrome - # - BROWSER: firefox - # - BROWSER: safari - # - BROWSER: ie:11 - # - BROWSER: ie:10 - # - BROWSER: ie:9 - # - BROWSER: iphone:8 - # - BROWSER: iphone:7 - # - BROWSER: iphone:6 - - ARTIFACT: 1 diff --git a/README.md b/README.md index 476b45779..ab8a789cd 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ Simple subscription billing in the browser [![build status][travis-image]][travis-url] [![code quality][climate-image]][climate-url] +[![Browser test status][sauce-image]][sauce-url] + ## Documentation [Getting Started & API Documentation][docs] @@ -66,9 +68,11 @@ in IE9. [*aurea mediocritas*][aristotle] [travis-url]: https://travis-ci.org/recurly/recurly-js/builds -[travis-image]: http://img.shields.io/travis/recurly/recurly-js.svg?style=flat +[travis-image]: http://img.shields.io/travis/recurly/recurly-js.svg?style=flat-square [climate-url]: https://codeclimate.com/github/recurly/recurly-js -[climate-image]: http://img.shields.io/codeclimate/github/recurly/recurly-js.svg?style=flat +[climate-image]: http://img.shields.io/codeclimate/github/recurly/recurly-js.svg?style=flat-square +[sauce-url]: https://saucelabs.com/u/recurly-js +[sauce-image]: https://saucelabs.com/browser-matrix/recurly-js.svg [docs]: https://docs.recurly.com/js [examples]: https://github.com/recurly/recurly-js-examples diff --git a/karma.conf.js b/karma.conf.js index 2252054e6..aad042ba7 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,4 +1,68 @@ module.exports = function (config) { + var sauceBrowsers = { + sl_chrome: { + base: 'SauceLabs', + browserName: 'chrome', + platform: 'Windows 10' + }, + + sl_firefox: { + base: 'SauceLabs', + browserName: 'firefox', + platform: 'Windows 10' + }, + + sl_safari: { + base: 'SauceLabs', + browserName: 'safari', + platform: 'OS X 10.11' + }, + + sl_ie_10: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '10' + }, + sl_ie_11: { + base: 'SauceLabs', + browserName: 'internet explorer', + platform: 'Windows 10', + version: '11' + }, + + sl_opera: { + base: 'SauceLabs', + browserName: 'opera' + }, + + sl_ios_8_4: { + base: 'SauceLabs', + browserName: 'iphone', + version: '8.4' + }, + sl_ios_9_0: { + base: 'SauceLabs', + browserName: 'iphone', + version: '9.0' + }, + sl_ios_9_1: { + base: 'SauceLabs', + browserName: 'iphone', + version: '9.1' + }, + sl_ios_9_2: { + base: 'SauceLabs', + browserName: 'iphone', + version: '9.2' + }, + + sl_android_5_1: { + base: 'SauceLabs', + browserName: 'android', + version: '5.1' + } + }; + config.set({ basePath: '', frameworks: ['mocha', 'fixture', 'sinon', 'phantomjs-shim', 'source-map-support'], @@ -15,14 +79,22 @@ module.exports = function (config) { jsonFixturesPreprocessor: { variableName: '__json__' }, - reporters: ['mocha'], + reporters: ['mocha', 'saucelabs'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['PhantomJS'], + browsers: ['PhantomJS'].concat(Object.keys(sauceBrowsers)), singleRun: true, - concurrency: Infinity + concurrency: Infinity, + sauceLabs: { + testName: 'Recurly.js tests', + recordVideo: true + }, + customLaunchers: sauceBrowsers, + browserDisconnectTimeout: 300000, // 5 minutes + browserNoActivityTimeout: 300000, + captureTimeout: 300000 }); }; diff --git a/package.json b/package.json index 641e05eff..872ec60e8 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "karma-mocha-reporter": "^1.1.3", "karma-phantomjs-launcher": "^0.2.1", "karma-phantomjs-shim": "^1.1.2", + "karma-sauce-launcher": "^0.3.0", "karma-sinon": "^1.0.4", "karma-source-map-support": "^1.1.0", "koa": "^1.1.2",