1 | const loaders = require('../webpack/loaders');
|
2 | const preLoaders = require('../webpack/preloaders');
|
3 |
|
4 | const BROWSERS = process.argv && process.argv.indexOf('--browser') !== -1
|
5 | ? ['jsdom', 'Chrome']
|
6 | : ['jsdom'];
|
7 |
|
8 | const COVERAGE = process.argv && process.argv.indexOf('--coverage') !== -1;
|
9 |
|
10 | const SINGLE_RUN = process.argv
|
11 | && process.argv.indexOf('--no-single-run') === -1;
|
12 |
|
13 | const PRELOADERS = COVERAGE ? preLoaders : [];
|
14 |
|
15 | const REPORTERS = COVERAGE
|
16 | ? ['spec', 'coverage']
|
17 | : ['spec'];
|
18 |
|
19 | module.exports = function exports(config) {
|
20 | config.set({
|
21 | browsers: BROWSERS,
|
22 | files: [
|
23 | './../webpack/webpack.test.js'
|
24 | ],
|
25 | client: {
|
26 | captureConsole: false
|
27 | },
|
28 | frameworks: ['chai', 'mocha', 'es6-shim', 'sinon-chai'],
|
29 | plugins: [
|
30 | 'karma-chrome-launcher',
|
31 | 'karma-chai',
|
32 | 'karma-coverage',
|
33 | 'karma-mocha',
|
34 | 'karma-mocha-reporter',
|
35 | 'karma-es6-shim',
|
36 | 'karma-webpack',
|
37 | 'karma-babel-preprocessor',
|
38 | 'karma-jsdom-launcher',
|
39 | 'karma-sourcemap-loader',
|
40 | 'karma-sinon-chai',
|
41 | 'karma-spec-reporter'
|
42 | ],
|
43 |
|
44 | preprocessors: {
|
45 | './../webpack/webpack.test.js': ['babel', 'webpack']
|
46 | },
|
47 |
|
48 | reporters: REPORTERS,
|
49 | specReporter: {
|
50 | maxLogLines: 20,
|
51 | suppressErrorSummary: false,
|
52 | suppressFailed: false,
|
53 | suppressPassed: false,
|
54 | suppressSkipped: false
|
55 | },
|
56 | singleRun: SINGLE_RUN,
|
57 | webpack: {
|
58 | resolve: {
|
59 | extensions: ['.js', '.jsx', '.styl']
|
60 | },
|
61 | module: {
|
62 | rules: PRELOADERS.concat(loaders)
|
63 | },
|
64 | externals: {
|
65 | cheerio: 'window',
|
66 | window: 'window',
|
67 | 'react/lib/ExecutionEnvironment': true,
|
68 | 'react/lib/ReactContext': true
|
69 | },
|
70 | target: 'web',
|
71 | node: {
|
72 | fs: 'empty'
|
73 | },
|
74 | devServer: {
|
75 | quiet: true
|
76 | }
|
77 | },
|
78 | webpackMiddleware: {
|
79 | noInfo: true,
|
80 | quiet: true
|
81 | },
|
82 | coverageReporter: {
|
83 | reporters: [
|
84 | { type: 'text' },
|
85 | { type: 'text-summary' },
|
86 | { type: 'lcovonly', subdir: './../../' }
|
87 | ]
|
88 | }
|
89 | });
|
90 | };
|