summaryrefslogtreecommitdiff
path: root/javascript/videojs/test/karma.conf.js
blob: 15e61d9addaca44768887e4a59ef38142094159c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const generate = require('videojs-generate-karma-config');
const CI_TEST_TYPE = process.env.CI_TEST_TYPE || '';

module.exports = function(config) {
  // see https://github.com/videojs/videojs-generate-karma-config
  // for options
  const options = {
    browsers(aboutToRun) {
      // never run on Chromium
      return aboutToRun.filter(function(launcherName) {
        return !(/^(Chromium)/).test(launcherName);
      });
    },
    serverBrowsers(defaults) {
      return [];
    },
    browserstackLaunchers(defaults) {
      // do not use browserstack for coverage testing
      if (CI_TEST_TYPE === 'coverage') {
        return {};
      }

      return defaults;
    },
    coverage: CI_TEST_TYPE === 'coverage' ? true : false
  };

  config = generate(config, options);

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

  config.files = [
    'node_modules/es5-shim/es5-shim.js',
    'node_modules/es6-shim/es6-shim.js',
    // 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',
    'dist/video-js.css',
    'test/dist/bundle.js',
    'test/dist/browserify.js',
    'test/dist/webpack.js'
  ];

  config.browserStack.project = 'Video.js';

  // 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";
    }
  });
  */

  /* eslint-disable no-console */
  // console.log(JSON.stringify(config, null, 2));
  /* eslint-enable no-console */

};