2018-10-31 17:01:30 +02:00
|
|
|
const generate = require('videojs-generate-karma-config');
|
2021-06-23 06:53:52 +02:00
|
|
|
const CI_TEST_TYPE = process.env.CI_TEST_TYPE || '';
|
2014-05-17 00:48:05 +03:00
|
|
|
|
2018-10-31 17:01:30 +02:00
|
|
|
module.exports = function(config) {
|
|
|
|
// see https://github.com/videojs/videojs-generate-karma-config
|
|
|
|
// for options
|
|
|
|
const options = {
|
2021-06-23 06:53:52 +02:00
|
|
|
browsers(aboutToRun) {
|
|
|
|
// never run on Chromium
|
|
|
|
return aboutToRun.filter(function(launcherName) {
|
|
|
|
return !(/^(Chromium)/).test(launcherName);
|
|
|
|
});
|
2018-11-29 00:26:00 +02:00
|
|
|
},
|
2018-10-31 17:01:30 +02:00
|
|
|
serverBrowsers(defaults) {
|
|
|
|
return [];
|
2017-02-28 22:02:18 +02:00
|
|
|
},
|
2021-06-23 06:53:52 +02:00
|
|
|
browserstackLaunchers(defaults) {
|
|
|
|
// do not use browserstack for coverage testing
|
|
|
|
if (CI_TEST_TYPE === 'coverage') {
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
return defaults;
|
|
|
|
},
|
|
|
|
coverage: CI_TEST_TYPE === 'coverage' ? true : false
|
2018-10-31 17:01:30 +02:00
|
|
|
};
|
2017-02-28 22:02:18 +02:00
|
|
|
|
2018-10-31 17:01:30 +02:00
|
|
|
config = generate(config, options);
|
|
|
|
|
2018-11-29 00:26:00 +02:00
|
|
|
config.proxies = config.proxies || {};
|
|
|
|
|
|
|
|
// disable warning logs for sourceset tests, by proxing to a remote host
|
|
|
|
Object.assign(config.proxies, {
|
|
|
|
'/test/relative-one.mp4': 'http://example.com/relative-one.mp4',
|
|
|
|
'/test/relative-two.mp4': 'http://example.com/relative-two.mp4',
|
|
|
|
'/test/relative-three.mp4': 'http://example.com/relative-three.mp4'
|
|
|
|
});
|
|
|
|
|
2018-10-31 17:01:30 +02:00
|
|
|
config.files = [
|
2019-08-30 20:56:41 +02:00
|
|
|
'node_modules/es5-shim/es5-shim.js',
|
|
|
|
'node_modules/es6-shim/es6-shim.js',
|
2021-07-06 20:56:02 +02:00
|
|
|
// make sinon be available via karma's server but don't include it directly
|
|
|
|
{ pattern: 'node_modules/sinon/pkg/sinon.js', included: false, served: true },
|
|
|
|
'test/sinon.js',
|
2018-10-31 17:01:30 +02:00
|
|
|
'dist/video-js.css',
|
2019-08-30 20:56:41 +02:00
|
|
|
'test/dist/bundle.js',
|
2018-11-30 23:37:29 +02:00
|
|
|
'test/dist/browserify.js',
|
2019-08-30 20:56:41 +02:00
|
|
|
'test/dist/webpack.js'
|
2018-10-31 17:01:30 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
config.browserStack.project = 'Video.js';
|
|
|
|
|
2019-02-12 17:10:37 +02:00
|
|
|
// pin Browserstack Firefox version to 64
|
2019-08-30 20:14:53 +02:00
|
|
|
/* eslint-disable camelcase */
|
2021-06-23 06:53:52 +02:00
|
|
|
if (config.customLaunchers && config.customLaunchers.bsFirefox) {
|
|
|
|
config.customLaunchers.bsFirefox.browser_version = '64.0';
|
|
|
|
}
|
2019-08-30 20:14:53 +02:00
|
|
|
/* eslint-enable camelcase */
|
2019-02-12 17:10:37 +02:00
|
|
|
|
|
|
|
// uncomment the section below to re-enable all browserstack video recording
|
|
|
|
// it is off by default because it slows the build
|
|
|
|
/*
|
|
|
|
Object.keys(config.customLaunchers).forEach(function(cl) {
|
|
|
|
if ('browserstack.video' in config.customLaunchers[cl]) {
|
|
|
|
config.customLaunchers[cl]['browserstack.video'] = "true";
|
|
|
|
}
|
|
|
|
});
|
|
|
|
*/
|
2019-08-30 20:14:53 +02:00
|
|
|
|
|
|
|
/* eslint-disable no-console */
|
2020-11-11 00:45:26 +02:00
|
|
|
// console.log(JSON.stringify(config, null, 2));
|
2019-08-30 20:14:53 +02:00
|
|
|
/* eslint-enable no-console */
|
|
|
|
|
2018-10-31 17:01:30 +02:00
|
|
|
};
|