Пользовательская Тестовая Среда Jest Не Может Использовать Абсолютные Пути

#node.js #typescript #jestjs #ts-jest

Вопрос:

Я не могу импортировать абсолютные пути в пользовательской тестовой среде Jest. Упрощенное репо здесь: https://github.com/kyle-banner/ts-customtestenvironment-jest

Запустите yarn int , и вы увидите ошибку

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

    Cannot find module 'src/config'
 

Ответ №1:

Одним из возможных решений этой проблемы, как было предложено командой Jest, является самостоятельная ссылка на пакет, используя его имя. Я обновил репозиторий примеров, чтобы отразить это решение.

пакет.json

 {
  "name": "test-proj",
  ...
  "exports": {
    ".": "./index.js",
    "./serverConfig": "./src/config/index.ts"
  }
}
 

Тестовая среда.ts

 const NodeEnvironment = require('jest-environment-node');
// @ts-ignore
import serverConfig from 'test-proj/serverConfig';

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

  async setup() {
    await super.setup();
    this.global.someGlobalObject = serverConfig;
  }

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

module.exports = CustomEnvironment;