diff options
Diffstat (limited to 'thirdparty/preact/test/karma.conf.js')
-rw-r--r-- | thirdparty/preact/test/karma.conf.js | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/thirdparty/preact/test/karma.conf.js b/thirdparty/preact/test/karma.conf.js new file mode 100644 index 000000000..3236e944b --- /dev/null +++ b/thirdparty/preact/test/karma.conf.js @@ -0,0 +1,155 @@ +/*eslint no-var:0, object-shorthand:0 */ + +var coverage = String(process.env.COVERAGE)!=='false', + ci = String(process.env.CI).match(/^(1|true)$/gi), + pullRequest = !String(process.env.TRAVIS_PULL_REQUEST).match(/^(0|false|undefined)$/gi), + realBrowser = String(process.env.BROWSER).match(/^(1|true)$/gi), + sauceLabs = realBrowser && ci && !pullRequest, + performance = !coverage && !realBrowser && String(process.env.PERFORMANCE)!=='false', + webpack = require('webpack'); + +var sauceLabsLaunchers = { + sl_chrome: { + base: 'SauceLabs', + browserName: 'chrome', + platform: 'Windows 10' + }, + sl_firefox: { + base: 'SauceLabs', + browserName: 'firefox', + platform: 'Windows 10' + }, + sl_safari: { + base: 'SauceLabs', + browserName: 'safari', + platform: 'OS X 10.11' + }, + sl_edge: { + base: 'SauceLabs', + browserName: 'MicrosoftEdge', + platform: 'Windows 10' + }, + sl_ie_11: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '11.103', + platform: 'Windows 10' + }, + sl_ie_10: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '10.0', + platform: 'Windows 7' + }, + sl_ie_9: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '9.0', + platform: 'Windows 7' + } +}; + +var travisLaunchers = { + chrome_travis: { + base: 'Chrome', + flags: ['--no-sandbox'] + } +}; + +var localBrowsers = realBrowser ? Object.keys(travisLaunchers) : ['PhantomJS']; + +module.exports = function(config) { + config.set({ + browsers: sauceLabs ? Object.keys(sauceLabsLaunchers) : localBrowsers, + + frameworks: ['source-map-support', 'mocha', 'chai-sinon'], + + reporters: ['mocha'].concat( + coverage ? 'coverage' : [], + sauceLabs ? 'saucelabs' : [] + ), + + coverageReporter: { + reporters: [ + { + type: 'text-summary' + }, + { + type: 'html', + dir: __dirname+'/../coverage' + } + ] + }, + + mochaReporter: { + showDiff: true + }, + + browserLogOptions: { terminal: true }, + browserConsoleLogOptions: { terminal: true }, + + browserNoActivityTimeout: 5 * 60 * 1000, + + // Use only two browsers concurrently, works better with open source Sauce Labs remote testing + concurrency: 2, + + // sauceLabs: { + // tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER || ('local'+require('./package.json').version), + // startConnect: false + // }, + + customLaunchers: sauceLabs ? sauceLabsLaunchers : travisLaunchers, + + files: [ + { pattern: 'polyfills.js', watched: false }, + { pattern: '{browser,shared}/**.js', watched: false } + ], + + preprocessors: { + '**/*': ['webpack', 'sourcemap'] + }, + + webpack: { + devtool: 'inline-source-map', + module: { + /* Transpile source and test files */ + preLoaders: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + loader: 'babel', + query: { + loose: 'all', + blacklist: ['es6.tailCall'] + } + } + ], + /* Only Instrument our source files for coverage */ + loaders: [].concat( coverage ? { + test: /\.jsx?$/, + loader: 'isparta', + include: /src/ + } : []) + }, + resolve: { + // The React DevTools integration requires preact as a module + // rather than referencing source files inside the module + // directly + alias: { preact: '../src/preact' }, + modulesDirectories: [__dirname, 'node_modules'] + }, + plugins: [ + new webpack.DefinePlugin({ + coverage: coverage, + NODE_ENV: JSON.stringify(process.env.NODE_ENV || ''), + ENABLE_PERFORMANCE: performance, + DISABLE_FLAKEY: !!String(process.env.FLAKEY).match(/^(0|false)$/gi) + }) + ] + }, + + webpackMiddleware: { + noInfo: true + } + }); +}; |