You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
snabbdom/karma.conf.js

65 lines
1.6 KiB
JavaScript

const ci = !!process.env.CI;
const watch = !!process.env.WATCH;
const live = !!process.env.LIVE;
const ip = "bs-local.com";
const browserstack = require("./browserstack-karma.cjs");
// https://www.browserstack.com/open-source (text search "parallels")
const BROWSERSTACK_OPEN_SOURCE_CONCURRENCY = 5;
const browsers = ci
? Object.keys(browserstack)
: live
? undefined
: watch
? ["Chrome"]
: ["ChromeHeadless", "FirefoxHeadless"];
module.exports = function (config) {
config.set({
basePath: ".",
frameworks: ["mocha", "karma-typescript"],
// list of files / patterns to load in the browser
files: [{ pattern: "src/**/*.ts" }, { pattern: process.env.FILES_PATTERN }],
preprocessors: {
"**/*.ts": "karma-typescript",
},
plugins: [
"karma-mocha",
"karma-typescript",
"karma-mocha-reporter",
require("./karma-benchmark-reporter.cjs"),
"karma-chrome-launcher",
"karma-firefox-launcher",
"karma-browserstack-launcher",
],
hostname: ci ? ip : "localhost",
karmaTypescriptConfig: {
compilerOptions: {
esModuleInterop: true,
},
include: [process.env.FILES_PATTERN, "src/**/*.ts"],
},
browserStack: {
name: "Snabbdom",
retryLimit: 1,
},
client: {
captureConsole: true,
},
customLaunchers: browserstack,
reporters: ["karma-typescript", "mocha", "benchmark", "BrowserStack"],
mochaReporter: {
showDiff: true,
},
port: 9876,
colors: true,
autoWatch: true,
browsers: browsers,
singleRun: !watch && !live,
concurrency: ci ? BROWSERSTACK_OPEN_SOURCE_CONCURRENCY : Infinity,
});
};