aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/preact/test/karma.conf.js
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/preact/test/karma.conf.js')
-rw-r--r--thirdparty/preact/test/karma.conf.js155
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
+ }
+ });
+};