@bormor

Как в Jest сделать мок API сервиса, если вариант api().user.getUserName.mockResolvedValueOnce('...') не работает?

Вызов api().user.getUserName.mockResolvedValueOnce('Alice') возвращает ошибку
5eec54ef353c9967440062.png

код теста
import MyComponent from '@/views/MyComponent.vue';
import { mount } from '@vue/test-utils';

import api from '@/helpers/api'   
import flushPromises from 'flush-promises'  

jest.mock('@/helpers/api')                    


describe('MyComponent.vue', () => {
	it('calls api with getMessage and show "Username: Alice"', async () =>{
		api().user.getUserName.mockResolvedValueOnce('Alice')    
		const wrapper = mount(ApiServise)
		
		await flushPromises()                          
		
		expect( api().user.getUserName ).toHaveBeenCalledTimes(1) 
		const usernameText = wrapper.find('.username').text()
		expect( usernameText ).toEqual('Username: Alice')
		
	})
});


код сервиса
import axios from 'axios';

const MOCK_SERVER = 'https://reqres.in/api'

const user = {
	getUserName(id = 2) {
		return axios
			.get(`${MOCK_SERVER}/users/${id}`)
			.then(r => r.data)
			.then(r => r.data)
			.then(r => r.first_name)
	}, 
}

export default function api(){
    return {
		user
	}
}
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы