1 | var istanbul = require('browserify-istanbul');
|
2 | var isparta = require('isparta');
|
3 |
|
4 | module.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 |
|
25 |
|
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 |
|
85 |
|
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 | };
|