Now project is using ES6 modules and displays coverage reports for browser tests (made via karma), while nodejs tests only keygens.
117 lines
3.6 KiB
JavaScript
117 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);
|
|
}
|