Я пытаюсь издеваться над экспортированным модулем, но не знаю как.Ниже приведен мой код.
API
// @/src/api/index.js
...
export const foo = {
fetch() {
return Promise.resolve()
}
}
Vue
import { foo } from '@/api'
...
data() {
return {
receivedData: ''
}
},
methods: {
onClickButton() {
// event listener
foo.then(data => { this.receivedData = data }
}
}
test.spec.js
import { shallowMount } from '@vue/test-utils'
import { foo } from '@/api'
...
jest.mock('../../../src/api/index.js') // it does not mock foo
...
beforeEach(() => {
foo.mockClear()
// error : _api.foo.mockClear is not a function
})
В этом примере, как я могу создать макет для foo
, который экспортируется с именем , а не для модуля, экспортируемого по умолчанию, как exported default foo
.