Vue test использует запуск кода в process.env.NODE_ENV! == проверка 'test' - PullRequest
0 голосов
/ 21 февраля 2019

Я временно отключил свой код маршрутизатора, когда я запускаю модульные тесты с vue-test-utils из-за https://github.com/vuejs/vue-cli/issues/1669. Это работает нормально, однако теперь у меня есть другой тест, который взрывает тесты, потому чтоон получает доступ к коду маршрута, который отключен.

if (process.env.NODE_ENV !== 'test') {
  route = new Router({
    mode: 'history',
    base: process.env.BASE_URL,
    routes: [
      {
        path: '/',
        name: 'home',
        component: Home,
        beforeEnter: (to, from, next) => {
          if (store.getters.currentUser.agencyUser) {
            next({ name: 'agency' })
          } else if (store.getters.currentUser.participantUser) {
            next({ name: 'participant' })
          } else {
            next()
          }
        }
      },
      ...
} else {
  route = new Router({
    mode: 'history',
    base: process.env.BASE_URL,
    routes: []
  })
}

Если я вызываю какой-либо метод router в компоненте, то теперь тест не пройден, потому что я добавил проверку beforeEnter.

beforeEnter: (to, from, next) => {
          if (store.getters.currentUser.agencyUser) {
            next({ name: 'agency' })
          } else if (store.getters.currentUser.participantUser) {
            next({ name: 'participant' })
          } else {
            next()
          }
        }

Тест не пройден, потому что store ссылается на localStorage, а утилиты vue-test-utils не могут с этим справиться.Однако весь код, указанный в хранилище, находится в состоянии process.env.NODE_ENV !== 'test'.Разве тесты не должны игнорировать этот сегмент кода?Я могу только предположить, что файл все еще «читается» и проверяется, даже если он не запущен.

...