// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
/* eslint max-len: ["error", { "code": 150 }]*/
const cpus = require('os').cpus().length;
const maxCpus = Math.floor(cpus * 0.45);

module.exports = {
    name: 'front end',
    displayName: {
        name: 'Front end',
        color: 'cyan',
    },
    testEnvironment: 'jsdom',
    setupFilesAfterEnv: [
        './front/jest-setup.js'
    ],
    maxWorkers: maxCpus,
    testMatch: [
        '**/front/**/*.spec.js',
        '**/print/**/*.spec.js',
        'loopback/**/*.spec.js',
        'modules/*/back/**/*.spec.js'
    ],
    testPathIgnorePatterns: [
        '/node_modules/'
    ],
    coveragePathIgnorePatterns: [
        '/node_modules/',
        '.spec.js'
    ],
    moduleDirectories: [
        `front`,
        `modules`,
        `front/node_modules`,
        `node_modules`,
        `print`
    ],
    moduleFileExtensions: [
        'js',
    ],
    moduleNameMapper: {
        '\\.(css|scss)$': 'identity-obj-proxy',
        '\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/front/jest-mock.js',
    },
    testURL: 'http://localhost',
    verbose: false,
    errorOnDeprecated: true,
    restoreMocks: true,
    timers: 'real',
    transform: {
        '^.+\\.js?$': 'babel-jest',
        '^.+\\.html$': 'html-loader-jest'
    },
    reporters: ['default', 'jest-junit']
};