Доступ к свойству `process.env` при тестировании приложения nuxt.js с помощью jest - PullRequest
0 голосов
/ 01 марта 2019

Я хочу написать модульные тесты для моего Nuxt.js приложения с Jest .Но некоторые из моих компонентов используют свойство process.env, объявленное в файле nuxt.config.js.Когда я запускаю свои тесты, я получаю эту ошибку:

enter image description here

Пример тестового файла:

import Config from "../nuxt.config"
import { mount } from "@vue/test-utils"
import CleanMapButton from "../components/UI/buttons/CleanMapButton.vue"

beforeAll(() => {
  process.env = Config.env
})

describe("Clean map button tests", () => {
  it ('Always true test', () => {
    expect(true).toBe(true)
  })
})

Ответы [ 2 ]

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

Импорт поднят , поэтому все операторы import выполняются до того, как process.env установлено в beforeAll.

Если модулю import требуется глобальная переменнаязатем он должен быть установлен до начала теста , настроив его в модуле настройки и настроив Jest для запуска этого модуля настройки, используя что-то вроде setupFilesAfterEnv.

С другой стороны, вызов require запускает код в то время, когда требуется , поэтому альтернативой является рефакторинг вашего тестового кода для вызова require('../components/UI/buttons/CleanMapButton.vue') после того, как beforeAll устанавливает process.env.

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

Вы можете просто установить их в beforeAll

beforeAll(() => {
  process.env = Object.assign(process.env, { get_settings: 'get_settings' });
});
...