UNPKG

2.55 kBJavaScriptView Raw
1var istanbul = require('browserify-istanbul');
2var isparta = require('isparta');
3
4module.exports = function(config) {
5
6 var detectBrowsers = {
7 enabled: false,
8 usePhantomJS: false,
9 postDetection: function(availableBrowsers) {
10 var safariIndex = availableBrowsers.indexOf('Safari');
11
12 if(safariIndex !== -1) {
13 availableBrowsers.splice(safariIndex, 1);
14 console.log("Disabled Safari as it was/is not supported");
15 }
16 return availableBrowsers;
17 }
18 };
19
20 if (process.env.TRAVIS) {
21 config.browsers = ['travisChrome'];
22 }
23
24 // If no browsers are specified, we enable `karma-detect-browsers`
25 // this will detect all browsers that are available for testing
26 if (!config.browsers.length) {
27 detectBrowsers.enabled = true;
28 }
29
30 config.set({
31 basePath: '..',
32 frameworks: ['qunit', 'browserify', 'detectBrowsers'],
33 files: [
34 'node_modules/sinon/pkg/sinon.js',
35 'node_modules/sinon/pkg/sinon-ie.js',
36 'node_modules/video.js/dist/video.js',
37 'node_modules/video.js/dist/video-js.css',
38 'node_modules/videojs-flash/dist/videojs-flash.js',
39 'dist-test/browserify-test.js',
40 'dist-test/webpack-test.js',
41 'dist-test/videojs-contrib-hls.js'
42 ],
43 browserConsoleLogOptions: {
44 level: 'error',
45 terminal: false
46 },
47 preprocessors: {
48 'test/**/*.test.js': ['browserify']
49 },
50 browserify: {
51 debug: true,
52 transform: [
53 'babelify',
54 ['browserify-shim', { global: true }]
55 ],
56 noParse: [
57 'test/data/**',
58 ]
59 },
60 babelPreprocessor: {
61 options: {
62 presets: ['es2015'],
63 sourceMap: 'inline'
64 },
65 sourceFileName: function (file) {
66 return file.originalPath;
67 }
68 },
69 customLaunchers: {
70 travisChrome: {
71 base: 'Chrome',
72 flags: ['--no-sandbox']
73 }
74 },
75 detectBrowsers: detectBrowsers,
76 reporters: ['dots'],
77 port: 9876,
78 colors: true,
79 autoWatch: false,
80 singleRun: true,
81 concurrency: Infinity
82 });
83
84 // Coverage reporting
85 // Coverage is enabled by passing the flag --coverage to npm test
86 var coverageFlag = process.env.npm_config_coverage;
87 var reportCoverage = process.env.TRAVIS || coverageFlag;
88
89 if (reportCoverage) {
90 config.reporters.push('coverage');
91 config.browserify.transform.push(istanbul({
92 instrumenter: isparta,
93 ignore: ['**/node_modules/**', '**/test/**']
94 }));
95 config.preprocessors['src/**/*.js'] = ['browserify', 'coverage'];
96 }
97
98};