/* * @copyright Copyright (c) 2020 Marco Ambrosini * * @author Marco Ambrosini * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ const { resolve } = require('node:path') // Listed packages will be transformed with babel-jest // TODO: find a way to consolidate this in one place, with webpack.common.js const ignorePatterns = [ 'bail', 'comma-separated-tokens', 'decode-named-character-reference', 'devlop', 'escape-string-regexp', 'hast-.*', 'is-.*', 'mdast-.*', 'micromark', 'property-information', 'rehype-.*', 'remark-.*', 'space-separated-tokens', 'trim-lines', 'trough', 'unified', 'unist-.*', 'vfile', 'vue-material-design-icons', 'web-namespaces', ] module.exports = { // Allow tests in the src and in tests/unit folders testMatch: ['/src/**/*.(spec|test).(ts|js)'], // Transform packages from top-level and nested 'node_modules' transformIgnorePatterns: [ `/node_modules/(?!(?:.*\\/node_modules\\/)?(?:${ignorePatterns.join('|')}))`, ], resetMocks: false, setupFiles: ['jest-localstorage-mock'], setupFilesAfterEnv: [ '/src/test-setup.js', 'jest-mock-console/dist/setupTestFramework.js', ], globalSetup: resolve(__dirname, 'jest.global.setup.js'), collectCoverageFrom: [ '/src/**/*.{js,vue}', ], testEnvironment: 'jest-environment-jsdom', moduleFileExtensions: [ 'js', 'vue', ], moduleNameMapper: { '\\.(css|scss)$': 'jest-transform-stub', 'vendor/tflite/(.*).wasm$': '/src/utils/media/effects/virtual-background/vendor/tflite/$1.js', }, transform: { '\\.js$': 'babel-jest', '\\.vue$': '@vue/vue2-jest', '\\.tflite$': 'jest-transform-stub', '\\.(css|scss)$': 'jest-transform-stub', }, }