используя путь dotenv с JEST - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь использовать другой файл .env для моих тестов Jest, но пока не могу заставить его работать.

package.json:

{
  "name": "task-manager",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "module": "main.js",
  "scripts": {
    "start": "node -r esm src/index.js",
    "dev": "nodemon -r esm -r dotenv/config src/index.js dotenv_config_path=./config/.env",
    "test": "jest --setupFiles dotenv/config --watch"
  },
  "jest": {
    "testEnvironment": "node"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@sendgrid/mail": "^6.3.1",
    "bcryptjs": "^2.4.3",
    "dotenv": "^6.2.0",
    "esm": "^3.2.10",
    "express": "^4.16.4",
    "jest": "^24.3.1",
    "jsonwebtoken": "^8.5.0",
    "mongodb": "^3.1.13",
    "mongoose": "^5.4.17",
    "multer": "^1.4.1",
    "sharp": "^0.21.3",
    "supertest": "^4.0.0",
    "validator": "^10.11.0"
  },
  "devDependencies": {
    "@babel/core": "^7.3.4",
    "@babel/preset-env": "^7.3.4",
    "babel-jest": "^24.3.1"
  }
}

Каждый раз, когда я запускал свой тест npm, используемый MONGODB_URL сохранялся в моем файле .env, а не в файле test.env

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

Я установил путь конфигурации в своем скрипте dev, но я не смог сделать то же самое с Jest.

Ожидаемое поведение: Я просто хочу использовать другой MONGODB_URL для моих тестов с Jest.

1 Ответ

0 голосов
/ 11 марта 2019

Вы должны явно указать, какой .env должен использоваться пакетом dotenv.

В вашем файле dotenv/config.js, который используется в качестве установочного файла для jest в самой первой строке, добавьте это:

require('dotenv').config({ path: './test.env' })

...