У меня есть экземпляр axios по умолчанию, и я устанавливаю его для теста:
// http.js
import Axios from 'axios'
export const instance = Axios.create({
baseURL: 'https://cs-node-123.herokuapp.com'
})
Я импортирую его в тестируемую службу и в тесте:
// RatingsService.js
import { instance } from '@/http'
import RatingsFactory from '@/models/Ratings/RatingsFactory'
import config from '@/utils/config'
const endpoint = 'api/rac/v1/ratings'
export default class RatingsService {
static async hasRated(objGuid) {
try {
const result = await instance.get(endpoint, {
params: {
obj_guid: objGuid,
user_guid: config.store.state.auth.user.userId
}
})
return RatingsFactory(result.data)
} catch (error) {
throw error
}
}
...
}
// RatingsService.spec.js
import RatingsService from '../RatingsService'
import { instance } from '@/http'
import moxios from 'moxios'
describe('RatingsService.js', () => {
beforeEach(() => {
moxios.install(instance)
})
afterEach(() => {
moxios.uninstall(instance)
})
it('handles the call to hasRated', async () => {
moxios.wait(() => {
const request = moxios.requests.mostRecent()
console.log(request)
request.respondWith({
status: 200,
response: {}
})
})
await RatingsService.hasRated('123')
expect(1).toBe(2)
})
})
Код вызывает и выполняет запрос, и moxios по какой-то причине не получает его.Я также попытался передать axios
в moxios.install(axios)
, но это тоже не сработало.Я также установил instance.defaults.adapter
на axios.defaults.adapter
до moxios.install(instance)
, но это также не сработало ...
Любая помощь приветствуется, спасибо.