typescript - Jest-anpassad testmiljö kan inte hitta absolut importerad sökväg


TL;DR: Jag kan inte importera absoluta sökvägar i en Jest-anpassad testmiljö. Förenklad repo här: https://github.com/kyle-banner/ts-customtestenvironment-jest

Jest och/eller Typescript kan inte hitta modulerna i den översta src/*-katalogen i mitt projekt när jag skapar en anpassad testmiljö

Felet jag får är följande:

 FAIL  path/to/test/something.integration.test.ts
  ● Test suite failed to run

    Cannot find module 'src/config'

Min jest.config.js ser ut som följer:

/* eslint-disable */
const { pathsToModuleNameMapper } = require('ts-jest/utils');

module.exports = {
  testEnvironment: './src/testUtils/testEnvironment.ts',
  preset: 'ts-jest',
  collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}'],
  coveragePathIgnorePatterns: ['node_modules', 'src/typings', 'enumConversion'],
  testPathIgnorePatterns: ['build/', 'node_modules/'],
  moduleNameMapper: pathsToModuleNameMapper({
      "src/*": ["src/*"],
    }, { prefix: '<rootDir>/' } )
};

Min tsconfig.json ser ut som följer:

{
    "compilerOptions": {
        "allowJs": true,
        "esModuleInterop": true,
        "outDir": "build",
        "module": "commonjs",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "target": "es6",
        "typeRoots": [
            "./src/typings",
            "node_modules/@types"
        ],
        "baseUrl": ".",
        "paths": {
            "src/*": [
                "src/*"
            ]
        }
    },
    "include": [
        "src/**/*.ts",
        "src/**/*.js",
        "src/**/*.json"
    ],
    "exclude": [
        "**/*.test.ts"
    ]
}

Min experimentella testEnvironment.ts är som följer:

const NodeEnvironment = require('jest-environment-node');
import config from 'src/config';

class CustomEnvironment extends NodeEnvironment {
  constructor(config, context) {
    super(config, context);
  }

  async setup() {
    await super.setup();
    this.global.someGlobalObject = { key: config };
  }

  async teardown() {
    await super.teardown();
  }
}

module.exports = CustomEnvironment;

Hela problemet är raden import config from 'src/config';. Jag har försökt med ett antal olika konfigurationsalternativ utan framgång. Jag vet inte hur man importerar från någon fil under den översta src/-katalogen. src-katalogen känns inte igen i import-satsen i testEnvironment.ts.

Det är värt att notera att relativa importvägar fungerar (t.ex. import config från './src/config';) men jag kan inte använda relativa vägar.

Använder jest 27.2.1, ts-jest 27.0.5