@Wayne1212121

Jest vue utils test как тестить запросы axios?

Всем привет!

Компонент Login
<template lang="html">
<div class="auth">
  <div class="auth__container">
    <input
      class='auth__input'
      v-model='login'
    />
    <input
      class='auth__input'
      v-model='password'
    />
    <button
      class='auth__button'
      @click='entry'
    >entry</button>
    <span
      v-if='error'
      class='auth__error'
    >{{ error }}</span>
    <span
      v-if='success'
      class='auth__success'
    >{{ success }}</span>
  </div>
</div>
</template>

<script>
import axios from 'axios'

export default {
  data() {
    return {
      login: '',
      password: '',

      error: '',
      success: '',

      rest: {}
    }
  },
  methods: {
    async entry() {
      let {
        data
      } = await axios.get('login.js')

      this.rest = data
    }
  }
}
</script>


Тест

import { mount } from '@vue/test-utils'
import Login from '@/components/Login.vue'

describe('Login', () => {
  it('toEq', async () => {
    const wrapper = mount(Login)

    wrapper.find('button').trigger('click')

    return expect(wrapper.vm.rest).toBe('value')
  })
})


Ожидается ответ 'value', но rest равен ' '

Если пробую nextTick
import { mount } from '@vue/test-utils'
import Login from '@/components/Login.vue'

describe('Login', () => {
  it('toEq', done => {
    const wrapper = mount(Login)

    wrapper.find('button').trigger('click')

    wrapper.vm.$nextTick(() => {
      expect(wrapper.vm.rest).toBe('value')

      done()
    })
  })
})


То идет ожидание 7 секунд и тест валится из-за того, что время прошло

Что нужно делать?
 Помогите пожалуйста, уже все перелистал и не понимаю
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Проект "Жизнь после смерти" - lifeafterdeath.ru
Мокать метод и проверять вызывается ли он по клику.
Тестить в юнит тестах запросы - плохая идея.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 сент. 2020, в 17:57
900 руб./за проект
19 сент. 2020, в 17:42
500 руб./за проект
19 сент. 2020, в 17:27
500 руб./за проект