/** @type {import('jest').Config} */ module.exports = { testEnvironment: 'jsdom', testEnvironmentOptions: { customExportConditions: ['node', 'node-addons'], }, roots: ['/src', '/tests'], testMatch: [ '**/__tests__/**/*.spec.[jt]s?(x)', '**/*.spec.[jt]s?(x)', '**/*.test.[jt]s?(x)', ], moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'vue', 'json'], transform: { '^.+\\.vue$': '@vue/vue3-jest', '^.+\\.[jt]sx?$': 'babel-jest', }, transformIgnorePatterns: [ '/node_modules/(?!(vuetify|@vueuse|@iconify)/)', ], moduleNameMapper: { '\\.(css|scss|sass)$': '/tests/__mocks__/styleMock.js', '\\.(svg|png|jpg|jpeg|gif|webp|woff2?)$': '/tests/__mocks__/fileMock.js', '^@/(.*)$': '/src/$1', '^@core/(.*)$': '/src/@core/$1', '^@core$': '/src/@core', '^@layouts/(.*)$': '/src/@layouts/$1', '^@layouts$': '/src/@layouts', '^@images/(.*)$': '/src/assets/images/$1', '^@styles/(.*)$': '/src/assets/styles/$1', '^@configured-variables$': '/tests/__mocks__/styleMock.js', }, globals: { 'vue-jest': { tsConfig: './tsconfig.json', }, }, setupFilesAfterEnv: ['/tests/setup.ts'], collectCoverageFrom: [ 'src/**/*.{ts,vue}', '!src/main.ts', ], };