I am upgrading my Angular project from v14 to v17 and upgraded many of my other packages in the process. One of these packages was Jest v26 to v29.
I have been having a lot of issues with this, but right now I can’t even run my Jest tests without getting the error:
● Validation Error:
Module <rootDir>/node_modules/@nx/jest/plugins/resolver in the resolver option was not found.
<rootDir> is: C:UsersIM010907DocumentsgitDashboardID_Client
My jest.config.ts looks as follows:
// If you update settings here, each individual app/librarys jest config also needs to be updated
/** @type {import('jest').Config} */
const config = {
preset: 'jest-preset-angular',
// resolves our fancy file paths: i.e. @icm/models -> libs/models/src/index.ts
resolver: '<rootDir>/node_modules/@nx/jest/plugins/resolver',
// files to run before compilation, set up globals
setupFiles: [
// mock's canvas used in charts
'jest-canvas-mock',
'config/jest-setup.js'
],
// setup for the actual tests, declaring global mocks
setupFilesAfterEnv: [
'config/jest-setup-after-env.js'
],
moduleNameMapper: {
'^lodash-es$' : 'lodash'
},
modulePathIgnorePatterns: [
'node_modules',
'libs/charts/src/lib/components/chart/*/*.js'
],
// this setting allows us to ignore most node_module things in tests but correctly use imported modules
// https://jestjs.io/docs/tutorial-react-native#transformignorepatterns-customization
// https://github.com/thymikee/jest-preset-angular/blob/c8211760c782ccd2be071a4f1ee38edef29657b7/website/docs/guides/angular-13%2B.md
transformIgnorePatterns: ['node_modules/(?!(.*\.mjs$|@justinribeiro))'],
transform: {
'^.+\.ts?$': 'ts-jest',
},
testRegex: '(/__tests__/.*|(\.|/)(test|spec))\.ts?$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
verbose: true,
};
module.exports = config;
I have tried setting it to @nx/jest/plugins/resolver
, ../node_modules/@nx/jest/plugins/resolver
and basically every other combination that makes sense.
Thanks in advance for any information you may have!