Возникли проблемы с надругательством над моксиосом - PullRequest
0 голосов
/ 16 марта 2019

У меня есть экземпляр 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), но это также не сработало ...

Любая помощь приветствуется, спасибо.

...