mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-23 22:52:25 +01:00
This gives us the capability to test the client-side JS rewriting against a suite of different browsers on different platforms. Note that getting Karma running on Travis CI requires some additional configuration documented at github.com/karma-runner/karma-sauce-launcher/issues/73 which is not made clear in the original documentation. In order to run the Karma tests, the Sauce Labs username and access keys need to be passed in via the SAUCE_USERNAME and SAUCE_ACCESS_KEYS env vars.
91 lines
1.8 KiB
JavaScript
91 lines
1.8 KiB
JavaScript
if (!process.env['SAUCE_USERNAME'] || !process.env['SAUCE_ACCESS_KEY']) {
|
|
console.error('Sauce Labs account details not set, skipping Karma tests');
|
|
process.exit(0);
|
|
}
|
|
|
|
var sauceLabsConfig = {
|
|
testName: 'PyWB Client Tests',
|
|
};
|
|
|
|
// see https://github.com/karma-runner/karma-sauce-launcher/issues/73
|
|
if (process.env.TRAVIS_JOB_NUMBER) {
|
|
sauceLabsConfig.startConnect = false;
|
|
sauceLabsConfig.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER;
|
|
}
|
|
|
|
var WOMBAT_JS_PATH = 'pywb/static/wombat.js';
|
|
|
|
var customLaunchers = {
|
|
sl_chrome: {
|
|
base: 'SauceLabs',
|
|
browserName: 'chrome',
|
|
},
|
|
|
|
sl_firefox: {
|
|
base: 'SauceLabs',
|
|
browserName: 'firefox',
|
|
},
|
|
|
|
/* Safari and Edge are currently broken in
|
|
pywb.
|
|
|
|
See: https://github.com/ikreymer/pywb/issues/148 (Edge)
|
|
https://github.com/ikreymer/pywb/issues/147 (Safari)
|
|
|
|
sl_safari: {
|
|
base: 'SauceLabs',
|
|
browserName: 'safari',
|
|
platform: 'OS X 10.11',
|
|
version: '9.0',
|
|
},
|
|
sl_edge: {
|
|
base: 'SauceLabs',
|
|
browserName: 'MicrosoftEdge',
|
|
},
|
|
*/
|
|
};
|
|
|
|
module.exports = function(config) {
|
|
config.set({
|
|
basePath: '../',
|
|
|
|
frameworks: ['mocha', 'chai'],
|
|
|
|
files: [
|
|
{
|
|
pattern: WOMBAT_JS_PATH,
|
|
watched: true,
|
|
included: false,
|
|
served: true,
|
|
},
|
|
'karma-tests/*.spec.js',
|
|
],
|
|
|
|
preprocessors: {},
|
|
|
|
reporters: ['progress'],
|
|
|
|
port: 9876,
|
|
|
|
colors: true,
|
|
|
|
logLevel: config.LOG_INFO,
|
|
|
|
autoWatch: true,
|
|
|
|
sauceLabs: sauceLabsConfig,
|
|
|
|
// use an extended timeout for capturing Sauce Labs
|
|
// browsers in case the service is busy
|
|
captureTimeout: 3 * 60000,
|
|
|
|
customLaunchers: customLaunchers,
|
|
|
|
browsers: Object.keys(customLaunchers),
|
|
|
|
singleRun: false,
|
|
|
|
concurrency: Infinity
|
|
})
|
|
};
|