| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const ci = !!process.env.CI;
- const watch = !!process.env.WATCH;
- const live = !!process.env.LIVE;
- const es5 = !!process.env.ES5;
- const ip = "bs-local.com";
- const browserstack = require("./browserstack-karma.js");
- // https://www.browserstack.com/open-source (text search "parallels")
- // Instead of the 5 available we only use 2, so two commits can run CI at the same time
- const BROWSERSTACK_OPEN_SOURCE_CONCURRENCY = 2;
- const getBrowserstackBrowsers = () =>
- Object.keys(browserstack).filter((k) => !!browserstack[k].es5 === es5);
- const browsers = ci
- ? getBrowserstackBrowsers()
- : 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: process.env.FILES_PATTERN.split(",")
- .map((p) => ({ pattern: p }))
- .concat({ pattern: "src/**/*.ts" }),
- preprocessors: {
- "**/*.ts": "karma-typescript",
- "**/*.tsx": "karma-typescript",
- },
- plugins: [
- "karma-mocha",
- "karma-typescript",
- "karma-mocha-reporter",
- "karma-chrome-launcher",
- "karma-firefox-launcher",
- "karma-browserstack-launcher",
- ],
- hostname: ci ? ip : "localhost",
- karmaTypescriptConfig: {
- compilerOptions: {
- ...require("./tsconfig.json").compilerOptions,
- ...require("./test/tsconfig.json").compilerOptions,
- sourceMap: false,
- inlineSourceMap: true,
- target: es5 ? "es5" : "es6",
- },
- bundlerOptions: {
- sourceMap: true,
- },
- include: process.env.FILES_PATTERN.split(",").concat("src/**/*.ts"),
- },
- browserStack: {
- name: "Snabbdom",
- retryLimit: 1,
- },
- client: {
- captureConsole: true,
- },
- customLaunchers: browserstack,
- reporters: ["karma-typescript", "mocha", "BrowserStack"],
- mochaReporter: {
- showDiff: true,
- },
- port: 9876,
- colors: true,
- autoWatch: true,
- browsers: browsers,
- singleRun: !watch && !live,
- concurrency: ci ? BROWSERSTACK_OPEN_SOURCE_CONCURRENCY : Infinity,
- });
- };
|