Files
OverlayScrollbars/jest.config.base.js
T
2021-01-27 01:11:22 +01:00

64 lines
2.1 KiB
JavaScript

const path = require('path');
const resolve = require('./resolve.config');
const browserRollupConfig = require('./config/jest-browser.rollup.config.js');
const testServerLoaderPath = path.resolve(__dirname, './config/jest-test-server.loader.js');
const jsdomSetupFile = path.resolve(__dirname, './config/jest-jsdom.setup.js');
const browserGlobalSetupPath = path.resolve(__dirname, './config/jest-browser.globalSetup.js');
const browserGlobalTeardownPath = path.resolve(__dirname, './config/jest-browser.globalTeardown.js');
const browserTestEnvironmentPath = path.resolve(__dirname, './config/jest-browser.env.js');
const browserSetupAfterEnvFile = path.resolve(__dirname, './config/jest-browser.setupAfterEnv.js');
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
const base = {
clearMocks: true,
coverageDirectory: './.coverage/jsdom',
moduleDirectories: resolve.directories,
moduleFileExtensions: resolve.extensions.map((ext) => ext.replace(/\./, '')),
testPathIgnorePatterns: ['\\\\node_modules\\\\'],
};
const browserBase = {
...base,
collectCoverage: false,
preset: 'jest-playwright-preset',
globalSetup: browserGlobalSetupPath,
globalTeardown: browserGlobalTeardownPath,
testEnvironment: browserTestEnvironmentPath,
setupFilesAfterEnv: [browserSetupAfterEnvFile],
testMatch: ['**/tests/browser/**/*.test.[jt]s?(x)'],
coveragePathIgnorePatterns: ['/node_modules/', `/${browserRollupConfig.build}/`],
transform: {
'^.+\\.[jt]sx?$': 'babel-jest',
[`^.+${browserRollupConfig.build}.+${browserRollupConfig.html.output}?$`]: testServerLoaderPath,
},
};
module.exports = {
...base,
projects: [
{
...base,
displayName: 'jsdom',
setupFilesAfterEnv: [jsdomSetupFile],
testMatch: ['**/tests/jsdom/**/*.test.[jt]s?(x)'],
},
{
...browserBase,
displayName: {
name: 'browser',
color: 'white',
},
},
{
...browserBase,
displayName: {
name: 'browser-dev',
color: 'white',
},
},
],
};