Как обнаружить вызов в ложной библиотеке зависимостей по JEST? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть модуль под названием "API". Это объект axios с определенными перехватчиками, как показано ниже:

import axios from 'axios'
import VueCookie from 'vue-cookie'

const api = axios.create(...)
api.interceptors.response.use(config => { ... }, error => {
   if (error.response.data.error === 'some-error') {
       VueCookie.set('error', 'some-error')
   }
})

export default api

Теперь я хочу определить, был ли вызван метод установки VueCookie с «error» и «some-error». Как я могу сделать это в моем тесте?

Теперь я смоделировал VueCookie, как показано ниже, но я не знаю, как получить доступ к этому макету и вызвать на нем ожидание (). ToHaveBeenCalledWith (). Решение ниже не работает.

const cookies = jest.mock('vue-cookie', () => {
            return {
                get: (key) => {
                    const cookies = {
                        timezone: 'Warsaw',
                        jwt: 'foo'
                    }

                    return cookies[key]
                }
            }
        })

...

it('test', () => {
    // calling interceptor
    expect(cookies.set).toHaveBeenCalledWith('error', 'some-error')
})

С уважением

1 Ответ

0 голосов
/ 15 октября 2019

Если я правильно понял, это не cookies, а метод set объекта cookies, который должен быть проверен. Поэтому я бы посоветовал проверить это с

it('test', () => {
    // calling interceptor
    expect(cookies.set).toHaveBeenCalledWith('error', 'some-error')
})
...