diff options
Diffstat (limited to 'history/karma.conf.js')
-rw-r--r-- | history/karma.conf.js | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/history/karma.conf.js b/history/karma.conf.js new file mode 100644 index 0000000..192885e --- /dev/null +++ b/history/karma.conf.js @@ -0,0 +1,131 @@ +var path = require('path'); +var webpack = require('webpack'); +var projectName = require('./package').name; + +module.exports = function(config) { + var customLaunchers = { + BS_Chrome: { + base: 'BrowserStack', + os: 'Windows', + os_version: '10', + browser: 'Chrome', + browser_version: '73.0' + }, + // BS_ChromeAndroid: { + // base: 'BrowserStack', + // device: 'Samsung Galaxy S8', + // os_version: '7.0', + // real_mobile: true + // }, + BS_Firefox: { + base: 'BrowserStack', + os: 'Windows', + os_version: '10', + browser: 'Firefox', + browser_version: '67.0' + }, + BS_Edge: { + base: 'BrowserStack', + os: 'Windows', + os_version: '10', + browser: 'Edge', + browser_version: '17.0' + }, + BS_IE11: { + base: 'BrowserStack', + os: 'Windows', + os_version: '10', + browser: 'IE', + browser_version: '11.0' + }, + BS_Safari: { + base: 'BrowserStack', + os: 'OS X', + os_version: 'Mojave', + browser: 'Safari', + browser_version: '12.1' + } + // BS_iPhoneX: { + // base: 'BrowserStack', + // device: 'iPhone X', + // os_version: '11', + // real_mobile: true + // }, + // BS_iPhoneXS: { + // base: 'BrowserStack', + // device: 'iPhone XS', + // os_version: '12', + // real_mobile: true + // }, + }; + + var historyAlias; + switch (process.env.TEST_ENV) { + case 'cjs': + historyAlias = 'cjs/history.js'; + break; + case 'umd': + historyAlias = 'umd/history.js'; + break; + case 'source': + default: + historyAlias = 'modules/index.js'; + } + + config.set({ + customLaunchers: customLaunchers, + browsers: ['Chrome' /*, 'Firefox'*/], + frameworks: ['mocha'], + reporters: ['mocha'], + files: ['tests.webpack.js'], + preprocessors: { + 'tests.webpack.js': ['webpack', 'sourcemap'] + }, + webpack: { + devtool: 'inline-source-map', + module: { + loaders: [ + { + test: /\.js$/, + exclude: /node_modules/, + loader: 'babel-loader' + } + ] + }, + resolve: { + alias: { + history$: path.resolve(__dirname, historyAlias) + } + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify('test') + }) + ] + }, + webpackServer: { + noInfo: true + } + }); + + if (process.env.USE_CLOUD) { + config.browsers = Object.keys(customLaunchers); + config.reporters = ['dots']; + config.concurrency = 2; + config.browserDisconnectTimeout = 10000; + config.browserDisconnectTolerance = 3; + + if (process.env.TRAVIS) { + config.singleRun = true; + config.browserStack = { + project: projectName, + build: process.env.TRAVIS_BUILD_NUMBER, + name: process.env.TRAVIS_JOB_NUMBER + }; + } else { + config.browserStack = { + project: projectName + }; + } + } +}; |