pwgen-for-bios/karma.conf.js
Slava Bacherikov da4eb4318f Switch to ES6 modules, change test behavior
Now project is using ES6 modules and displays coverage reports for
browser tests (made via karma), while nodejs tests only keygens.
2020-06-07 00:52:45 +03:00

116 lines
3.6 KiB
JavaScript

const path = require("path");
module.exports = function(config) {
var customLaunchers = {
sl_ios_safari: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'iOS',
deviceName: 'iPhone 7 Simulator',
version: '10.3',
deviceOrientation: 'portrait'
},
sl_safari_7: {
base: "SauceLabs",
browserName: "safari",
platform: "OS X 10.11",
version: "10.0"
},
sl_edge_13: {
base: "SauceLabs",
browserName: 'MicrosoftEdge',
platform: 'Windows 10',
version: '13.10586'
},
ChromeHeadlessTravis: {
base: "ChromeHeadless",
flags: ['--no-sandbox']
}
};
var configuration = {
frameworks: ["jasmine"],
files: [
{pattern: './ci/spec-bundle.js', watched: false}
],
preprocessors: {
'./ci/spec-bundle.js': ['webpack'],
},
webpackMiddleware: {
scripts: 'errors-only'
},
webpack: {
devtool: "inline-source-map",
mode: "development",
resolve: {
extensions: ['.ts', '.js', '.mjs'],
},
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
use: [
"@jsdevtools/coverage-istanbul-loader",
{loader: 'ts-loader', options: {transpileOnly: true}}
]
},
{
test: /\.m?js$/,
exclude: /node_modules/,
use: [{loader: 'babel-loader', options: {presets: ['@babel/preset-env']}}]
}
]
},
},
mime: {
'text/x-typescript': ['ts', 'tsx']
},
sauceLabs: {
testName: "Bios-pw Unit tests",
retryLimit: 2,
recordVideo: false,
recordScreenshots: false
},
reporters: ["progress", "saucelabs", "coverage-istanbul"],
coverageIstanbulReporter: {
reports: ['text', 'text-summary', "lcovonly"],
dir: path.join(__dirname, "coverage"),
combineBrowserReports: true,
fixWebpackSourcePaths: true,
},
browsers: ["ChromeHeadless", "FirefoxHeadless"],
customLaunchers: customLaunchers,
singleRun: true,
concurrency: 2,
plugins: [
'karma-jasmine',
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-sauce-launcher',
'karma-webpack',
'karma-coverage-istanbul-reporter'
]
};
if (process.env.TRAVIS) {
configuration.browsers = ['ChromeHeadlessTravis', 'FirefoxHeadless'];
}
if (process.env.SAUCE && process.env.SAUCE_USERNAME) {
var currentBrowsers = configuration.browsers;
var sauceBrowsers = Object.keys(customLaunchers).filter((s) => s.startsWith('sl_'));
configuration.browsers = currentBrowsers.concat(sauceBrowsers);
if (process.env.TRAVIS) {
var buildNumber = process.env.TRAVIS_BUILD_NUMBER;
var travisBuildId = process.env.TRAVIS_BUILD_ID;
var buildId = `TRAVIS ${buildNumber} (${travisBuildId})`;
configuration.sauceLabs.build = buildId;
configuration.sauceLabs.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER;
}
}
config.set(configuration);
}