js-noise/karma.conf.cjs
2023-02-02 00:41:04 +01:00

60 lines
1.2 KiB
JavaScript

process.env.CHROME_BIN = require("puppeteer").executablePath();
const os = require("os");
const path = require("path");
const { nodeResolve } = require("@rollup/plugin-node-resolve");
const commonjs = require("@rollup/plugin-commonjs");
const json = require("@rollup/plugin-json");
const output = {
path: path.join(os.tmpdir(), "_karma_webpack_") + Math.floor(Math.random() * 1000000),
};
const rollupConfig = {
input: {
index: `${output.path}/dist/index.js`,
},
output: {
dir: "bundle",
format: "esm",
},
plugins: [
commonjs(),
json(),
nodeResolve({
browser: true,
preferBuiltins: false,
extensions: [".js", ".ts"],
}),
],
};
module.exports = function (config) {
config.set({
frameworks: ["mocha"],
preprocessors: {
"**/*.ts": ["rollup"],
},
files: [
"src/**/*.spec.ts",
"src/**/*.ts",
{
pattern: `${output.path}/**/*`,
watched: false,
},
],
envPreprocessor: ["CI"],
reporters: ["progress"],
browsers: ["ChromeHeadless"],
singleRun: true,
client: {
mocha: {
timeout: 6000, // Default is 2s
},
},
rollupPreprocessor: rollupConfig,
});
};