如何使用axios和jest模拟响应API

时间:2020-10-12 10:16:28

标签: react-native axios jestjs

我在开玩笑进行测试。我想用axios和笑话来模拟我的响应api。我将react钩子用作我的react native。我的axios文件有配置文件,例如配置头,拦截器等。 这是我的base.js

import axios from 'axios'
import AsyncStorage from '@react-native-community/async-storage'
import Config from 'react-native-config'
import {generateUUID, getDeviceInfo} from '../helper/helper'

const baseProduct = axios.create({
  baseURL: Config.API_URL,
  timeout: 500000,
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': Config.API_KEY
  }
})

baseProduct.interceptors.request.use(
  async function (config) {
    const deviceInfo = await getDeviceInfo()
    const latitude = await AsyncStorage.getItem('latitude')
    const longitude = await AsyncStorage.getItem('longitude')
    const regionId = await AsyncStorage.getItem('regionId')
    config.headers['accept-language'] = 'id-ID'
    config.headers['date'] = new Date().toISOString()
    config.headers['x-coordinate'] = `${latitude},${longitude}`
    config.headers['x-trace-id'] = generateUUID()
    config.headers['x-device'] = `${deviceInfo.versionApp}/${deviceInfo.deviceType}/${deviceInfo.deviceName}/${deviceInfo.deviceVersion}/${deviceInfo.deviceUid}`
    config.headers['x-region-id'] = regionId
    // config.headers['x-region-id'] = regionId

    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)
export default baseProduct

这是我的回复文件

import base from '../../../../services/baseProduct'

const getCorporateProduct = async (param) => {
  try {
    const response = await base.get('halomassage/product', {
      params: param
    })
    return Promise.resolve(response.data)
  } catch (error) {
    return Promise.reject(error)
  }
}

export default getCorporateProduct

我希望有人能帮助我解决这个问题。

0 个答案:

没有答案