Best JavaScript code snippet using sinon
api.js
Source:api.js  
1import axios from 'axios';2function objectToFormData(object) {3  if (object instanceof FormData) {4    return object;5  }6  const result = new FormData();7  for (const key in object) {8    if (object.hasOwnProperty(key)) {9      const item = object[key];10      let preparedItem;11      if (item instanceof Blob) {12        preparedItem = item;13      } else if (typeof item === 'object') {14        preparedItem = JSON.stringify(item);15      } else {16        preparedItem = item;17      }18      preparedItem && result.append(key.toString(), preparedItem);19    }20  }21  return result;22}23export default {24  auth: {25    register: (data, config) =>26      axios.post('v1/register-without-drotr', objectToFormData(data), config),27    getGuest: (lang, config) =>28      axios.post('v1/guest/get', objectToFormData({lang}), config),29    authenticate: (data, config) =>30      axios.post('oauth/token', objectToFormData(data), config),31    // axios.post('v1/register', objectToFormData(data), config)32  },33  user: {34    getUser: () =>35      axios.get('/v1/me'),36    subscribeUser: ({data, config = null}) =>37      axios.post('v1/users/subscribe', data, config),38    getUserFeeds: data =>39      axios.post('v1/me/feeds/new/all', data),40    viewFeeds: data =>41      axios.post('v1/me/feeds/view', data),42    unwatchedFeeds: () =>43      axios.get('v1/me/feeds/unwatched?by_type=true'),44    changeMySettings: data =>45      axios.post('v1/me/settings/edit', data),46    sendChinChin: data =>47      axios.post('v1/me/chats/messages/chin', data),48    checkChat: data =>49      axios.post('v1/me/chats/check', data),50    acceptGift: data =>51      axios.post('v1/me/gifts/accept', data),52    changeAvatar: data =>53      axios.post('v1/me/settings/avatar/change', data),54    editBaseSettings: data =>55      axios.post('v1/me/settings/base/edit', data),56    editSettings: data =>57      axios.post('v1/me/settings/edit', data),58    createUpload: data =>59      axios.post('v1/uploads/create', data),60    loadUpload: (data, config) =>61      axios.post('v1/uploads/load', data, config),62    loadImageUpload: (data, config) =>63      axios.post('v1/uploads/load-image', data, config),64    getBookmarks: data =>65      axios.post('v1/me/posts/bookmarks/all', data),66    getMentions: data =>67      axios.post('v1/me/posts/mentions/all', data),68    addToBlackList: data =>69      axios.post('v1/me/settings/blacklist/add', data),70    deleteFromBlackList: data =>71      axios.post('v1/me/settings/blacklist/delete', data),72    getRecommendations: data =>73      axios.post('v1/me/recommendations', data),74    getAllSubscribtionsPosts: data =>75      axios.post('v1/me/posts/subscriptions/all', data),76    getOutgoingRequests: data =>77      axios.post('v1/users/subscribers/requests/all', data),78    deleteRequest: data =>79      axios.post('v1/users/subscribers/requests/delete', data),80    getAdminStatistic: () =>81      axios.get('v1/me/statistic/admin/all?from=2017-01-01&to=today'),82    getWalletInfo: () =>83      axios.get('v1/me/wallet/info'),84    getCoinPacks: () =>85      axios.get('v1/me/wallet/coinpacks/all'),86    buyCoinPack: params =>87      axios.get('v1/me/wallet/coinpacks/buy', params)88  },89  users: {90    getAll: data =>91      axios.post('v1/users/all', data),92    getUser: data =>93      axios.post('v1/users/get', data),94    subscribeUser: data =>95      axios.post('v1/users/subscribe', data),96    reportPost: data =>97      axios.post('v1/users/posts/report', data),98    getPostStatistics: data =>99      axios.post('v1/users/posts/statistics/get', data),100    profileVisitFromPost: data =>101      axios.post('v1/users/posts/actions/add', data),102    addUserPost: (data, config) =>103      axios.post('v1/users/posts/add', data, config),104    getPost: data =>105      axios.post('v1/users/posts/get', data),106    getPosts: data =>107      axios.post('v1/users/posts/all', data),108    voteUser: data =>109      axios.post('v1/users/vote', data),110    deletePost: data =>111      axios.post('v1/users/posts/delete', data),112    sendViewedPosts: data =>113      axios.post('v1/users/posts/view', data),114    repostPost: data =>115      axios.post('v1/users/posts/repost', data),116    likePost: data =>117      axios.post('v1/users/posts/like', data),118    bookmarkPost: data =>119      axios.post('v1/users/posts/bookmark', data),120    usersSearch: data =>121      axios.post('v1/users/search', data),122    approveUser: data =>123      axios.post('v1/users/subscribers/requests/approve', data),124    getRatingHistory: data =>125      axios.post('v1/rating-history/get', data),126    deleteMentionOfCurrentUser: data =>127      axios.post('v1/users/posts/mentions/delete', data),128  },129  post: {130    makeRepost: data =>131      axios.post('v1/users/posts/repost', data),132    editPost: data =>133      axios.post('v1/users/posts/edit', data),134    searchChunks: data =>135      axios.post('v1/me/posts/search/chunks', data),136    comments: {137      delete: data =>138        axios.post('v1/users/posts/comments/delete', data),139      getAll: data =>140        axios.post('v1/users/posts/comments/all', data),141      add: data =>142        axios.post('v1/users/posts/comments/add', data)143    }144  },145  stories: {146    getAllStories: () =>147      axios.get('v1/users/stories/all'),148    deleteStory: data =>149      axios.post('v1/users/posts/delete', data),150    getActiveStories: data =>151      axios.post('v1/users/stories/get', data),152    getArchivedStories: data =>153      axios.post('v1/users/stories/archive/all', data),154    getStoryAlbums: data =>155      axios.post('v1/users/stories/albums/all', data),156    getStoryAlbum: data =>157      axios.post('v1/users/stories/albums/get', data),158    addStoryAlbum: data =>159      axios.post('v1/users/stories/albums/add', data),160    deleteStoryAlbum: data =>161      axios.post('v1/users/stories/albums/delete', data),162  },163  blacklist: {164    addToBlackList: ({data, config = null}) =>165      axios.post('v1/me/settings/blacklist/add', data, config),166  },167  gifts: {168    getMyGifts: data =>169      axios.post('v1/me/gifts/all', data),170    getAll: () =>171      axios.get('v1/gifts/all'),172    send: data =>173      axios.post('v1/me/gifts/send', data),174    sendCoins: data =>175      axios.post('v1/me/wallet/send', data),176  },177  groups: {178    getGroupSubjects: data =>179      axios.post('v1/groups/subjects/all', data),180    createGroup: data =>181      axios.post('v1/groups/create', data),182    getGroup: data =>183      axios.post('v1/groups/get', data),184    subscribeToGroup: data =>185      axios.post('v1/groups/join', data),186    getGroupVideos: data =>187      axios.post('v1/groups/videos/all', data),188    getGroupAlbums: data =>189      axios.post('v1/albums/all', data),190    getGroupPosts: data =>191      axios.post('v1/groups/posts/all', data),192    addGroupPost: data =>193      axios.post('v1/groups/posts/add', data),194    inviteToGroup: data =>195      axios.post('v1/groups/invite/add', data),196    getMyGroups: data =>197      axios.post('v1/me/groups/all', data),198    getGroups: data =>199      axios.post('v1/groups/all',data),200    getGroupSearch: (data, config) =>201      axios.post('v1/groups/search', data, config),202    deletePost: data =>203      axios.post('v1/groups/posts/delete', data),204    getGroupUsers: data =>205      axios.post('v1/groups/users/all', data),206    kickUserFromGroup: data =>207      axios.post('v1/groups/users/kick',  objectToFormData(data)),208    getGroupRequests: data =>209      axios.post('v1/groups/users/requests', data),210    approveGroupUser: data =>211      axios.post('v1/groups/users/requests/apply', data),212    setRoleForUser: data =>213      axios.post('v1/groups/users/role', objectToFormData(data)),214    getBlacklist: data =>215      axios.post('v1/groups/blacklist/all', objectToFormData(data)),216    addUserToBlackList: data =>217      axios.post('v1/groups/blacklist/add', objectToFormData(data)),218    removeUserFromBlackList: data =>219      axios.post('v1/groups/blacklist/delete', objectToFormData(data)),220    addVideo: data =>221      axios.post('v1/groups/videos/add', data),222    addAlbum: data =>223      axios.post('v1/albums/create', data),224  },225  albums: {226    getAlbumPosts: data =>227      axios.post('v1/albums/posts/all', data),228    getAlbum: data =>229      axios.post('v1/albums/get', data),230    addAlbumPost: data =>231      axios.post('v1/albums/posts/add', data),232    deleteAlbumPost: data =>233      axios.post('v1/albums/posts/delete', data),234    createAlbum: data =>235      axios.post('v1/albums/create', data),236    updateAlbum: data =>237      axios.post('v1/albums/edit', data),238    deleteAlbum: data =>239      axios.post('v1/albums/delete', data),240  },241  search: {242    getPosts: data =>243      axios.post('v1/users/posts/search',data),244  },245  chat: {246    getAll: data =>247      axios.post('v1/me/chats/all', data),248    getList: data =>249      axios.post('v1/me/chats/list', data),250    addToArchive: data =>251      axios.post('v1/me/chats/archive', data),252    deleteChat: data =>253      axios.post('v1/me/chats/delete', data),254    getChat: data =>255      axios.post('v1/me/chats/get', data),256    getUnreadMessagesCount: () =>257      axios.get('v1/me/chats/messages/unread'),258    readMessages: data =>259      axios.post('v1/me/chats/messages/read', data),260    create: data =>261      axios.post('v1/me/chats/create', data),262    getArchive: data =>263      axios.post('v1/me/chats/archived/all', data),264    search: data =>265      axios.post('v1/me/chats/search', data)266  },267  messages: {268    getAll: data =>269      axios.post('v1/me/chats/messages/all', data),270    send: data =>271      axios.post('v1/me/chats/messages/send', data),272    distribution: data =>273      axios.post('v1/me/chats/messages/distribution', data),274    getFavourite: data =>275      axios.post('v1/me/chats/messages/favourite/all', data),276    addFavourite: data =>277      axios.post('v1/me/chats/messages/favourite/add', data),278    deleteFavourite: data =>279      axios.post('v1/me/chats/messages/favourite/delete', data),280    delete: data =>281      axios.post('v1/me/chats/messages/delete', data),282    forwardMessage: data =>283      axios.post('v1/me/chats/messages/forward', data),284    forwardPost: data =>285      axios.post('v1/me/chats/messages/forward-post', data)286  },287  banner: {288    getAll: () =>289      axios.get('v1/banners/all'),290    getBanner: data =>291      axios.post('v1/banners/get', data)292  },293  contests: {294    getAll: data =>295      axios.post('v1/contests/all', data)296  }...axios_vx.x.x.js
Source:axios_vx.x.x.js  
1// flow-typed signature: e0f675cc56db12f7865d542c523225c52// flow-typed version: <<STUB>>/axios_v1.0.0/flow_v0.63.13/**4 * This is an autogenerated libdef stub for:5 *6 *   'axios'7 *8 * Fill this stub out by replacing all the `any` types.9 *10 * Once filled out, we encourage you to share your work with the11 * community by sending a pull request to:12 * https://github.com/flowtype/flow-typed13 */14declare module 'axios' {15  declare module.exports: any;16}17/**18 * We include stubs for each file inside this npm package in case you need to19 * require those files directly. Feel free to delete any files that aren't20 * needed.21 */22declare module 'axios/dist/axios' {23  declare module.exports: any;24}25declare module 'axios/dist/axios.min' {26  declare module.exports: any;27}28declare module 'axios/lib/adapters/http' {29  declare module.exports: any;30}31declare module 'axios/lib/adapters/xhr' {32  declare module.exports: any;33}34declare module 'axios/lib/axios' {35  declare module.exports: any;36}37declare module 'axios/lib/cancel/Cancel' {38  declare module.exports: any;39}40declare module 'axios/lib/cancel/CancelToken' {41  declare module.exports: any;42}43declare module 'axios/lib/cancel/isCancel' {44  declare module.exports: any;45}46declare module 'axios/lib/core/Axios' {47  declare module.exports: any;48}49declare module 'axios/lib/core/createError' {50  declare module.exports: any;51}52declare module 'axios/lib/core/dispatchRequest' {53  declare module.exports: any;54}55declare module 'axios/lib/core/enhanceError' {56  declare module.exports: any;57}58declare module 'axios/lib/core/InterceptorManager' {59  declare module.exports: any;60}61declare module 'axios/lib/core/settle' {62  declare module.exports: any;63}64declare module 'axios/lib/core/transformData' {65  declare module.exports: any;66}67declare module 'axios/lib/defaults' {68  declare module.exports: any;69}70declare module 'axios/lib/helpers/bind' {71  declare module.exports: any;72}73declare module 'axios/lib/helpers/btoa' {74  declare module.exports: any;75}76declare module 'axios/lib/helpers/buildURL' {77  declare module.exports: any;78}79declare module 'axios/lib/helpers/combineURLs' {80  declare module.exports: any;81}82declare module 'axios/lib/helpers/cookies' {83  declare module.exports: any;84}85declare module 'axios/lib/helpers/deprecatedMethod' {86  declare module.exports: any;87}88declare module 'axios/lib/helpers/isAbsoluteURL' {89  declare module.exports: any;90}91declare module 'axios/lib/helpers/isURLSameOrigin' {92  declare module.exports: any;93}94declare module 'axios/lib/helpers/normalizeHeaderName' {95  declare module.exports: any;96}97declare module 'axios/lib/helpers/parseHeaders' {98  declare module.exports: any;99}100declare module 'axios/lib/helpers/spread' {101  declare module.exports: any;102}103declare module 'axios/lib/utils' {104  declare module.exports: any;105}106// Filename aliases107declare module 'axios/dist/axios.js' {108  declare module.exports: $Exports<'axios/dist/axios'>;109}110declare module 'axios/dist/axios.min.js' {111  declare module.exports: $Exports<'axios/dist/axios.min'>;112}113declare module 'axios/index' {114  declare module.exports: $Exports<'axios'>;115}116declare module 'axios/index.js' {117  declare module.exports: $Exports<'axios'>;118}119declare module 'axios/lib/adapters/http.js' {120  declare module.exports: $Exports<'axios/lib/adapters/http'>;121}122declare module 'axios/lib/adapters/xhr.js' {123  declare module.exports: $Exports<'axios/lib/adapters/xhr'>;124}125declare module 'axios/lib/axios.js' {126  declare module.exports: $Exports<'axios/lib/axios'>;127}128declare module 'axios/lib/cancel/Cancel.js' {129  declare module.exports: $Exports<'axios/lib/cancel/Cancel'>;130}131declare module 'axios/lib/cancel/CancelToken.js' {132  declare module.exports: $Exports<'axios/lib/cancel/CancelToken'>;133}134declare module 'axios/lib/cancel/isCancel.js' {135  declare module.exports: $Exports<'axios/lib/cancel/isCancel'>;136}137declare module 'axios/lib/core/Axios.js' {138  declare module.exports: $Exports<'axios/lib/core/Axios'>;139}140declare module 'axios/lib/core/createError.js' {141  declare module.exports: $Exports<'axios/lib/core/createError'>;142}143declare module 'axios/lib/core/dispatchRequest.js' {144  declare module.exports: $Exports<'axios/lib/core/dispatchRequest'>;145}146declare module 'axios/lib/core/enhanceError.js' {147  declare module.exports: $Exports<'axios/lib/core/enhanceError'>;148}149declare module 'axios/lib/core/InterceptorManager.js' {150  declare module.exports: $Exports<'axios/lib/core/InterceptorManager'>;151}152declare module 'axios/lib/core/settle.js' {153  declare module.exports: $Exports<'axios/lib/core/settle'>;154}155declare module 'axios/lib/core/transformData.js' {156  declare module.exports: $Exports<'axios/lib/core/transformData'>;157}158declare module 'axios/lib/defaults.js' {159  declare module.exports: $Exports<'axios/lib/defaults'>;160}161declare module 'axios/lib/helpers/bind.js' {162  declare module.exports: $Exports<'axios/lib/helpers/bind'>;163}164declare module 'axios/lib/helpers/btoa.js' {165  declare module.exports: $Exports<'axios/lib/helpers/btoa'>;166}167declare module 'axios/lib/helpers/buildURL.js' {168  declare module.exports: $Exports<'axios/lib/helpers/buildURL'>;169}170declare module 'axios/lib/helpers/combineURLs.js' {171  declare module.exports: $Exports<'axios/lib/helpers/combineURLs'>;172}173declare module 'axios/lib/helpers/cookies.js' {174  declare module.exports: $Exports<'axios/lib/helpers/cookies'>;175}176declare module 'axios/lib/helpers/deprecatedMethod.js' {177  declare module.exports: $Exports<'axios/lib/helpers/deprecatedMethod'>;178}179declare module 'axios/lib/helpers/isAbsoluteURL.js' {180  declare module.exports: $Exports<'axios/lib/helpers/isAbsoluteURL'>;181}182declare module 'axios/lib/helpers/isURLSameOrigin.js' {183  declare module.exports: $Exports<'axios/lib/helpers/isURLSameOrigin'>;184}185declare module 'axios/lib/helpers/normalizeHeaderName.js' {186  declare module.exports: $Exports<'axios/lib/helpers/normalizeHeaderName'>;187}188declare module 'axios/lib/helpers/parseHeaders.js' {189  declare module.exports: $Exports<'axios/lib/helpers/parseHeaders'>;190}191declare module 'axios/lib/helpers/spread.js' {192  declare module.exports: $Exports<'axios/lib/helpers/spread'>;193}194declare module 'axios/lib/utils.js' {195  declare module.exports: $Exports<'axios/lib/utils'>;...test.mjs
Source:test.mjs  
1import ava from 'ava'2import delay from 'delay'3import LRUCache from 'lru-cache'4import axios from 'axios'5import * as axiosCachingDns from '../index.mjs'6const test = ava.serial7let axiosClient8test.beforeEach(() => {9  axiosCachingDns.config.dnsTtlMs = 100010  axiosCachingDns.config.dnsIdleTtlMs = 500011  axiosCachingDns.config.cacheGraceExpireMultiplier = 212  axiosCachingDns.config.backgroundScanMs = 10013  axiosCachingDns.cacheConfig.maxAge = (axiosCachingDns.config.dnsTtlMs * axiosCachingDns.config.cacheGraceExpireMultiplier)14  axiosCachingDns.config.cache = new LRUCache(axiosCachingDns.cacheConfig)15  axiosClient = axios.create({16    timeout: 5000,17    // maxRedirects: 0,18  })19  axiosCachingDns.registerInterceptor(axiosClient)20  axiosCachingDns.startBackgroundRefresh()21  axiosCachingDns.startPeriodicCachePrune()22})23test.after.always(() => {24  axiosCachingDns.config.cache.reset()25})26test('query google with baseURL and relative url', async (t) => {27  axiosCachingDns.registerInterceptor(axios)28  const { data } = await axios.get('/finance', {29    baseURL: 'http://www.google.com',30    // headers: { Authorization: `Basic ${basicauth}` },31  })32  t.truthy(data)33  t.is(1, axiosCachingDns.getStats().dnsEntries)34  t.is(1, axiosCachingDns.getStats().misses)35})36test('query google caches and after idle delay uncached', async (t) => {37  const resp = await axiosClient.get('http://amazon.com')38  t.truthy(resp.data)39  t.truthy(axiosCachingDns.config.cache.get('amazon.com'))40  await delay(6000)41  t.falsy(axiosCachingDns.config.cache.get('amazon.com'))42  const expectedStats = {43    dnsEntries: 0,44    // refreshed: 4, variable45    hits: 0,46    misses: 2,47    idleExpired: 1,48    errors: 0,49    lastError: 0,50    lastErrorTs: 0,51  }52  const stats = axiosCachingDns.getStats()53  delete stats.refreshed54  t.deepEqual(expectedStats, stats)55})56test('query google caches and refreshes', async (t) => {57  await axiosClient.get('http://amazon.com')58  const { updatedTs } = axiosCachingDns.config.cache.get('amazon.com')59  const timeoutTime = Date.now() + 500060  // eslint-disable-next-line no-constant-condition61  while (true) {62    const dnsEntry = axiosCachingDns.config.cache.get('amazon.com')63    if (!dnsEntry) t.fail('dnsEntry missing or expired')64    // console.log(dnsEntry)65    if (updatedTs !== dnsEntry.updatedTs) break66    if (Date.now() > timeoutTime) t.fail()67    // eslint-disable-next-line no-await-in-loop68    await delay(10)69  }70  const expectedStats = {71    dnsEntries: 1,72    // refreshed: 5, variable73    hits: 0,74    misses: 3,75    idleExpired: 1,76    errors: 0,77    lastError: 0,78    lastErrorTs: 0,79  }80  const stats = axiosCachingDns.getStats()81  delete stats.refreshed82  t.deepEqual(expectedStats, stats)83})84test('query two services, caches and after one idle delay uncached', async (t) => {85  await axiosClient.get('http://amazon.com')86  await axiosClient.get('http://microsoft.com')87  const { lastUsedTs } = axiosCachingDns.config.cache.get('microsoft.com')88  t.is(1, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)89  await axiosClient.get('http://microsoft.com')90  t.is(2, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)91  t.truthy(lastUsedTs < axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)92  t.is(2, axiosCachingDns.config.cache.length)93  await axiosClient.get('http://microsoft.com')94  t.is(3, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)95  t.falsy(lastUsedTs === axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)96  t.is(2, axiosCachingDns.config.cache.length)97  await delay(4000)98  t.is(1, axiosCachingDns.config.cache.length)99  await delay(2000)100  t.is(0, axiosCachingDns.config.cache.length)101  const expectedStats = {102    dnsEntries: 0,103    // refreshed: 17, variable104    hits: 2,105    misses: 5,106    idleExpired: 3,107    errors: 0,108    lastError: 0,109    lastErrorTs: 0,110  }111  const stats = axiosCachingDns.getStats()112  delete stats.refreshed113  t.deepEqual(expectedStats, stats)114})115test('validate axios config not altered', async (t) => {116  const baseURL = 'http://microsoft.com'117  const axiosConfig = { baseURL }118  const custAxiosClient = axios.create(axiosConfig)119  axiosCachingDns.registerInterceptor(custAxiosClient)120  await custAxiosClient.get('/')121  t.is(baseURL, axiosConfig.baseURL)122  await custAxiosClient.get('/')123  t.is(baseURL, axiosConfig.baseURL)124})125test('validate axios get config not altered', async (t) => {126  const url = 'http://microsoft.com'127  const custAxiosClient = axios.create()128  const reqConfig = {129    method: 'get',130    url,131  }132  axiosCachingDns.registerInterceptor(custAxiosClient)133  await custAxiosClient.get(url, reqConfig)134  t.is(url, reqConfig.url)135  await custAxiosClient.get(url, reqConfig)136  t.is(url, reqConfig.url)137})138test('validate axios request config not altered', async (t) => {139  const url = 'http://microsoft.com'140  const custAxiosClient = axios.create()141  const reqConfig = {142    method: 'get',143    url,144  }145  axiosCachingDns.registerInterceptor(custAxiosClient)146  await custAxiosClient.request(reqConfig)147  t.is(url, reqConfig.url)148  await custAxiosClient.request(reqConfig)149  t.is(url, reqConfig.url)...test.js
Source:test.js  
1import ava from 'ava'2import delay from 'delay'3import LRUCache from 'lru-cache'4import axios from 'axios'5import * as axiosCachingDns from '../index.js'6const test = ava.serial7let axiosClient8test.beforeEach(() => {9  axiosCachingDns.config.dnsTtlMs = 100010  axiosCachingDns.config.dnsIdleTtlMs = 500011  axiosCachingDns.config.cacheGraceExpireMultiplier = 212  axiosCachingDns.config.backgroundScanMs = 10013  axiosCachingDns.cacheConfig.ttl = (axiosCachingDns.config.dnsTtlMs * axiosCachingDns.config.cacheGraceExpireMultiplier)14  axiosCachingDns.config.cache = new LRUCache(axiosCachingDns.cacheConfig)15  axiosClient = axios.create({16    timeout: 5000,17    // maxRedirects: 0,18  })19  axiosCachingDns.registerInterceptor(axiosClient)20  axiosCachingDns.startBackgroundRefresh()21  axiosCachingDns.startPeriodicCachePrune()22})23test.after.always(() => {24  axiosCachingDns.config.cache.clear()25})26test('query google with baseURL and relative url', async (t) => {27  axiosCachingDns.registerInterceptor(axios)28  const { data } = await axios.get('/finance', {29    baseURL: 'http://www.google.com',30    // headers: { Authorization: `Basic ${basicauth}` },31  })32  t.truthy(data)33  t.is(1, axiosCachingDns.getStats().dnsEntries)34  t.is(1, axiosCachingDns.getStats().misses)35})36test('query google caches and after idle delay uncached', async (t) => {37  const resp = await axiosClient.get('http://amazon.com')38  t.truthy(resp.data)39  t.truthy(axiosCachingDns.config.cache.get('amazon.com'))40  await delay(6000)41  t.falsy(axiosCachingDns.config.cache.get('amazon.com'))42  const expectedStats = {43    dnsEntries: 0,44    // refreshed: 4, variable45    hits: 0,46    misses: 2,47    idleExpired: 1,48    errors: 0,49    lastError: 0,50    lastErrorTs: 0,51  }52  const stats = axiosCachingDns.getStats()53  delete stats.refreshed54  t.deepEqual(expectedStats, stats)55})56test('query google caches and refreshes', async (t) => {57  await axiosClient.get('http://amazon.com')58  const { updatedTs } = axiosCachingDns.config.cache.get('amazon.com')59  const timeoutTime = Date.now() + 500060  // eslint-disable-next-line no-constant-condition61  while (true) {62    const dnsEntry = axiosCachingDns.config.cache.get('amazon.com')63    if (!dnsEntry) t.fail('dnsEntry missing or expired')64    // console.log(dnsEntry)65    if (updatedTs !== dnsEntry.updatedTs) break66    if (Date.now() > timeoutTime) t.fail()67    // eslint-disable-next-line no-await-in-loop68    await delay(10)69  }70  const expectedStats = {71    dnsEntries: 1,72    // refreshed: 5, variable73    hits: 0,74    misses: 3,75    idleExpired: 1,76    errors: 0,77    lastError: 0,78    lastErrorTs: 0,79  }80  const stats = axiosCachingDns.getStats()81  delete stats.refreshed82  t.deepEqual(expectedStats, stats)83})84test('query two services, caches and after one idle delay uncached', async (t) => {85  await axiosClient.get('http://amazon.com')86  await axiosClient.get('http://microsoft.com')87  const { lastUsedTs } = axiosCachingDns.config.cache.get('microsoft.com')88  t.is(1, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)89  await axiosClient.get('http://microsoft.com')90  t.is(2, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)91  t.truthy(lastUsedTs < axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)92  t.is(2, axiosCachingDns.config.cache.size)93  await axiosClient.get('http://microsoft.com')94  t.is(3, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)95  t.falsy(lastUsedTs === axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)96  t.is(2, axiosCachingDns.config.cache.size)97  await delay(4000)98  t.is(1, axiosCachingDns.config.cache.size)99  await delay(2000)100  t.is(0, axiosCachingDns.config.cache.size)101  const expectedStats = {102    dnsEntries: 0,103    // refreshed: 17, variable104    hits: 2,105    misses: 5,106    idleExpired: 3,107    errors: 0,108    lastError: 0,109    lastErrorTs: 0,110  }111  const stats = axiosCachingDns.getStats()112  delete stats.refreshed113  t.deepEqual(expectedStats, stats)114})115test('validate axios config not altered', async (t) => {116  const baseURL = 'http://microsoft.com'117  const axiosConfig = { baseURL }118  const custAxiosClient = axios.create(axiosConfig)119  axiosCachingDns.registerInterceptor(custAxiosClient)120  await custAxiosClient.get('/')121  t.is(baseURL, axiosConfig.baseURL)122  await custAxiosClient.get('/')123  t.is(baseURL, axiosConfig.baseURL)124})125test('validate axios get config not altered', async (t) => {126  const url = 'http://microsoft.com'127  const custAxiosClient = axios.create()128  const reqConfig = {129    method: 'get',130    url,131  }132  axiosCachingDns.registerInterceptor(custAxiosClient)133  await custAxiosClient.get(url, reqConfig)134  t.is(url, reqConfig.url)135  await custAxiosClient.get(url, reqConfig)136  t.is(url, reqConfig.url)137})138test('validate axios request config not altered', async (t) => {139  const url = 'http://microsoft.com'140  const custAxiosClient = axios.create()141  const reqConfig = {142    method: 'get',143    url,144  }145  axiosCachingDns.registerInterceptor(custAxiosClient)146  await custAxiosClient.request(reqConfig)147  t.is(url, reqConfig.url)148  await custAxiosClient.request(reqConfig)149  t.is(url, reqConfig.url)...systemManage.js
Source:systemManage.js  
1import { axios } from '@/utils/axios'2//䏿æ¡å¼(ç è¡¨)3export function lableData( params ){4    return axios.get('codes/selectList',{params})5}6// 级è7export function cascadeLabelData(params ){8    return axios.get('codes/categoryCode/parentCodeKey',{params})9}10//ç³»ç»ç¨æ·11export function getUserList(params){12    return axios.post('adminUser/page',params)13}14export function agentSave(params){15    return axios.post(`adminUser/${params.id ? 'edit' : 'save'}`,params)16}17export function agentDetail(id){18    return axios.get('adminUser/select/detail/'+id)19}20export function agentDelete(params){21    return axios.post('adminUser/delete',params)22}23export function agentEnable(id,params){24    return axios.get('adminUser/enable/'+id,{params})25}26export function agentPassword(params){//éç½®å¯ç 27    return axios.post('adminUser/reset/password',params)28}29export function companySearch (companyName) {//ä¼ä¸æ¨¡ç³æç´¢ä¸ææ¡30    return axios.get('company/vague/list/'+companyName)31}32export function getAllUserData() {//è·åææçç¨æ·33    return axios.get('adminUser/list');34}35//èå管ç36export function menusList() {//è·åèåå表37    return axios.get('resource/treePage')38}39export function addMenus(params) {//æ·»å èåèç¹40    return axios.post('resource/save',params)41}42export function editMenus(params) {//ç¼è¾èåèç¹43    return axios.post('resource/edit',params)44}45export function deleteMenus(params) {//å é¤èåèç¹46    return axios.post('resource/delete',params)47}48//è§è²ç®¡ç49export function getRoleListData() {//è·åè§è²å表50    return axios.post('role/page')51}52export function addRole(params) {//æ·»å è§è²èç¹53    return axios.post('role/save',params)54}55export function editRole(params) {//ç¼è¾è§è²èç¹56    return axios.post('role/edit',params)57}58export function deleteRole(params) {//å é¤è§è²èç¹59    return axios.post('role/delete',params)60}61export function copyRole(params) {//å¤å¶è§è²èç¹62    return axios.post('role/copy',params)63}64export function enabledRole(id,params) {//ç¦ç¨å¯ç¨è§è²65    return axios.get(`role/enable/${id}`,{params})66}67export function getRoleResource(id) {//è·åè§è²å·²é
ç½®çèµæºæ°æ®68    return axios.get(`/role/select/${id}/resource`)69}70export function getRoleUser(id) {//è·åè§è²å·²é
ç½®çç¨æ·æ°æ®71    return axios.get(`/role/select/${id}/user`)72}73export function saveRoleResource(params) {//ä¿åè§è²é
ç½®çèµæºæ°æ®74    return axios.post('role/dispose/resource',params)75}76export function saveRoleUser(params) {//ä¿åè§è²é
ç½®çç¨æ·æ°æ®77    return axios.post('role/dispose/user',params)78}79//ç è¡¨ç±»å«ç®¡ç80export function getCategoryPage(params) {//è·åç è¡¨ç±»å«åè¡¨æ°æ®81    return axios.post('category/page',params)82}83export function getCategoryList() {//æ¥è¯¢ææçç±»å«84    return axios.get('category/list')85}86export function addCategory(params) {//æ°å»ºç è¡¨ç±»å«87    return axios.post('category/save',params)88}89export function editCategory(params) {//ç¼è¾ç è¡¨ç±»å«90    return axios.post('category/edit',params)91}92export function deleteCategory(id) {//å é¤ç è¡¨ç±»å«93    return axios.post(`category/deleted/${id}`)94}95export function getCateValuePage(params) {//è·åç è¡¨å¼åè¡¨æ°æ®96    return axios.post('codes/page',params)97}98export function addCodeValue(params) {//æ°å»ºç è¡¨å¼99    return axios.post('codes/save',params)100}101export function editCodeValue(params) {//ç¼è¾ç è¡¨å¼102    return axios.post('codes/edit',params)103}104export function delCodeValue(params) {//å é¤ç è¡¨å¼105    return axios.post('codes/delete/batch',params)106}107export function queryParentList(id) {//å¤çº§èå¨ç è¡¨å¼å è½½ä¸çº§èç¹ç䏿å¼108    return axios.get(`codes/save/query/${id}`)109}110export function loadNextData(categoryCode,parentCodeKey) {//å¤çº§èå¨å è½½ä¸çº§æ°æ®111    return axios.get(`codes/categoryCode/parentCodeKey?categoryCode=${categoryCode}&parentCodeKey=${parentCodeKey}`)112}113//é¦é¡µé¡¶é¨æ°æ®ç»è®¡æ¥å£114export function getTopTotalData() {115    return axios.get('homePage/count')116}117export function getEnterpriseList(params){118    return axios.post('company/page',params)...axios.js
Source:axios.js  
1import Axios from 'axios'2import defu from 'defu'3// Axios.prototype cannot be modified4const axiosExtra = {5  setBaseURL (baseURL) {6    this.defaults.baseURL = baseURL7  },8  setHeader (name, value, scopes = 'common') {9    for (let scope of Array.isArray(scopes) ? scopes : [ scopes ]) {10      if (!value) {11        delete this.defaults.headers[scope][name];12        return13      }14      this.defaults.headers[scope][name] = value15    }16  },17  setToken (token, type, scopes = 'common') {18    const value = !token ? null : (type ? type + ' ' : '') + token19    this.setHeader('Authorization', value, scopes)20  },21  onRequest(fn) {22    this.interceptors.request.use(config => fn(config) || config)23  },24  onResponse(fn) {25    this.interceptors.response.use(response => fn(response) || response)26  },27  onRequestError(fn) {28    this.interceptors.request.use(undefined, error => fn(error) || Promise.reject(error))29  },30  onResponseError(fn) {31    this.interceptors.response.use(undefined, error => fn(error) || Promise.reject(error))32  },33  onError(fn) {34    this.onRequestError(fn)35    this.onResponseError(fn)36  },37  create(options) {38    return createAxiosInstance(defu(options, this.defaults))39  }40}41// Request helpers ($get, $post, ...)42for (let method of ['request', 'delete', 'get', 'head', 'options', 'post', 'put', 'patch']) {43  axiosExtra['$' + method] = function () { return this[method].apply(this, arguments).then(res => res && res.data) }44}45const extendAxiosInstance = axios => {46  for (let key in axiosExtra) {47    axios[key] = axiosExtra[key].bind(axios)48  }49}50const createAxiosInstance = axiosOptions => {51  // Create new axios instance52  const axios = Axios.create(axiosOptions)53  axios.CancelToken = Axios.CancelToken54  axios.isCancel = Axios.isCancel55  // Extend axios proto56  extendAxiosInstance(axios)57  // Setup interceptors58  setupProgress(axios)59  return axios60}61const setupProgress = (axios) => {62  if (process.server) {63    return64  }65  // A noop loading inteterface for when $nuxt is not yet ready66  const noopLoading = {67    finish: () => { },68    start: () => { },69    fail: () => { },70    set: () => { }71  }72  const $loading = () => (window.$nuxt && window.$nuxt.$loading && window.$nuxt.$loading.set) ? window.$nuxt.$loading : noopLoading73  let currentRequests = 074  axios.onRequest(config => {75    if (config && config.progress === false) {76      return77    }78    currentRequests++79  })80  axios.onResponse(response => {81    if (response && response.config && response.config.progress === false) {82      return83    }84    currentRequests--85    if (currentRequests <= 0) {86      currentRequests = 087      $loading().finish()88    }89  })90  axios.onError(error => {91    if (error && error.config && error.config.progress === false) {92      return93    }94    currentRequests--95    if (Axios.isCancel(error)) {96      return97    }98    $loading().fail()99    $loading().finish()100  })101  const onProgress = e => {102    if (!currentRequests) {103      return104    }105    const progress = ((e.loaded * 100) / (e.total * currentRequests))106    $loading().set(Math.min(100, progress))107  }108  axios.defaults.onUploadProgress = onProgress109  axios.defaults.onDownloadProgress = onProgress110}111export default (ctx, inject) => {112  // baseURL113  const baseURL = process.browser114      ? '/'115      : (process.env._AXIOS_BASE_URL_ || 'http://localhost:3000/')116  // Create fresh objects for all default header scopes117  // Axios creates only one which is shared across SSR requests!118  // https://github.com/mzabriskie/axios/blob/master/lib/defaults.js119  const headers = {120    "common": {121        "Accept": "application/json, text/plain, */*"122    },123    "delete": {},124    "get": {},125    "head": {},126    "post": {},127    "put": {},128    "patch": {}129}130  const axiosOptions = {131    baseURL,132    headers133  }134  // Proxy SSR request headers headers135  axiosOptions.headers.common = (ctx.req && ctx.req.headers) ? Object.assign({}, ctx.req.headers) : {}136  delete axiosOptions.headers.common['accept']137  delete axiosOptions.headers.common['host']138  delete axiosOptions.headers.common['cf-ray']139  delete axiosOptions.headers.common['cf-connecting-ip']140  delete axiosOptions.headers.common['content-length']141  delete axiosOptions.headers.common['content-md5']142  delete axiosOptions.headers.common['content-type']143  if (process.server) {144    // Don't accept brotli encoding because Node can't parse it145    axiosOptions.headers.common['accept-encoding'] = 'gzip, deflate'146  }147  const axios = createAxiosInstance(axiosOptions)148  // Inject axios to the context as $axios149  ctx.$axios = axios150  inject('axios', axios)...index.js
Source:index.js  
1import axios from 'axios'2axios.defaults.baseURL = 'http://127.0.0.1:3000/main/'3// é¦é¡µå¼å§4// 对è¿åçæ°æ®è¿è¡æ°æ®æ¦æª5axios.interceptors.response.use(function (response) {6  // è¿åresponse.data7  return response.data8}, function (error) {9  return Promise.reject(error)10})11// 仿¥æ¨èåç±»æ¥å£12export function getClassify () {13  return axios.get('classify')14}15// åçç¹åæ¥å£16export function getSaleHot () {17  return axios.get('saleHot')18}19// å¯åå¿«æ¢æ¥å£20export function getSaleFast () {21  return axios.get('saleFast')22}23// é¦é¡µä»æ¥ç¹åæ¥å£24export function getTodaySale () {25  return axios.get('todaySale')26}27// é¦é¡µæ¥å£ç»æ28// æ¯å©´é¡µé¢æ¥å£å¼å§29// æ¯å©´é¡µé¢è½®æå¾30export function getFransnanaBanner () {31  return axios.get('slider')32}33// æ¯å©´é¡µé¢åç±»34export function getWbClassify () {35  return axios.get('wbClassify')36}37// æ¯å©´é¡µé¢ä»æ¥ç¹å38export function getWbSaleHot () {39  return axios.get('wbSaleHot')40}41// æ¯å©´é¡µé¢å¯åå¿«æ¢çå42export function getWbSaleFast () {43  return axios.get('wbSaleFast')44}45// è·å主å类页é¢ç左边åç±»æ 46export function getWbLeftNav () {47  return axios.get('wbClassifyLeft')48}49// åç±»æ¨è50export function getWbRecommend () {51  return axios.get('recommend')52}53export function getRegister () {54  return axios.get('register')55}56// ç°å®è57// è½®ææ¥å£58export function getCarousel () {59  return axios.get('tcarousel')60}61// ææºæ¥å£62export function getCallphone () {63  return axios.get('tcellphone')64}65// 广å66export function getFenlei () {67  return axios.get('tfenlei')68}69// å¿«æ¢70export function getTkuai () {71  return axios.get('tkuai')72}73// å°ç±³74export function getTmi1 () {75  return axios.get('tmi1')76}77export function getTmi2 () {78  return axios.get('tmi2')79}80// å±ç¤º81export function getShow () {82  return axios.get('show')83}84// lfz85export function getBanner () {86  return axios.get('banner')87}88export function getHomeCate () {89  return axios.get('category')90}91export function getkuaiqiang () {92  return axios.get('weipinkuaiqiang')93}94// å°åºé¦æ¥å£95export function getBrandList () {96  return axios.get('brandList')97}98// ç你忬¢æ¥å£99export function getCainixihuan () {100  return axios.get('cainixihuan')101}102// æ´å¤æ¨èæ¥å£103export function getgengduotuijian () {104  return axios.get('gengduotuijian')105}106// 页头å¾çæ¥å£107export function getYetou () {108  return axios.get('yetou')109}110// èèè å½é
111// è½®æå¾æ¥å£112export function getBanner1 () {113  return axios.get('banner1')114}115// å±ç¤ºå¾æ¥å£116export function getComptPlay () {117  return axios.get('playList')118}119// å·¦æ»å¨æ¥å£120export function getLeftslide () {121  return axios.get('leftslide')122}123// å¿«æ¢æ¥å£124export function getGrabList () {125  return axios.get('grabList')126}127// ç你忬¢æ¥å£128export function getGuessLike () {129  return axios.get('guessLike')130}131// å¯åå½é
æ¥å£132export function getOnlyproduct () {133  return axios.get('onlyproduct')134}135// è±æ¬£æ¬£ çæ´»æ¥å£136export function getBanner2 () {137  return axios.get('banner2')138}139//第äºé¨å140export function getLiveCate () {141  return axios.get('category2')142}143// 第ä¸é¨å144export function getLiveThree () {145  return axios.get('three')146}147// 第åé¨å148export function getLiveFour () {149  return axios.get('four')150}151// 第äºé¨å152export function getLiveFive () {153  return axios.get('five')154}155// 第å
é¨å156export function getLiveSix () {157  return axios.get('six')...actions.js
Source:actions.js  
1const actions = {2  AXIOS_ADD_BEGIN: 'AXIOS_ADD_BEGIN',3  AXIOS_ADD_SUCCESS: 'AXIOS_ADD_SUCCESS',4  AXIOS_ADD_ERR: 'AXIOS_ADD_ERR',5  AXIOS_READ_BEGIN: 'AXIOS_READ_BEGIN',6  AXIOS_READ_SUCCESS: 'AXIOS_READ_SUCCESS',7  AXIOS_READ_ERR: 'AXIOS_READ_ERR',8  AXIOS_UPDATE_BEGIN: 'AXIOS_UPDATE_BEGIN',9  AXIOS_UPDATE_SUCCESS: 'AXIOS_UPDATE_SUCCESS',10  AXIOS_UPDATE_ERR: 'AXIOS_UPDATE_ERR',11  AXIOS_DELETE_BEGIN: 'AXIOS_DELETE_BEGIN',12  AXIOS_DELETE_SUCCESS: 'AXIOS_DELETE_SUCCESS',13  AXIOS_DELETE_ERR: 'AXIOS_DELETE_ERR',14  AXIOS_SINGLE_DATA_BEGIN: 'AXIOS_SINGLE_DATA_BEGIN',15  AXIOS_SINGLE_DATA_SUCCESS: 'AXIOS_SINGLE_DATA_SUCCESS',16  AXIOS_SINGLE_DATA_ERR: 'AXIOS_SINGLE_DATA_ERR',17  AXIOS_UPLOAD_BEGIN: 'AXIOS_UPLOAD_BEGIN',18  AXIOS_UPLOAD_SUCCESS: 'AXIOS_UPLOAD_SUCCESS',19  AXIOS_UPLOAD_ERR: 'AXIOS_UPLOAD_ERR',20  axiosUploadBegin: () => {21    return {22      type: actions.AXIOS_UPLOAD_BEGIN,23    };24  },25  axiosUploadSuccess: data => {26    return {27      type: actions.AXIOS_UPLOAD_SUCCESS,28      data,29    };30  },31  axiosUploadErr: err => {32    return {33      type: actions.AXIOS_UPLOAD_ERR,34      err,35    };36  },37  axiosAddBegin: () => {38    return {39      type: actions.AXIOS_ADD_BEGIN,40    };41  },42  axiosAddSuccess: data => {43    return {44      type: actions.AXIOS_ADD_SUCCESS,45      data,46    };47  },48  axiosAddErr: err => {49    return {50      type: actions.AXIOS_ADD_ERR,51      err,52    };53  },54  axiosReadBegin: () => {55    return {56      type: actions.AXIOS_READ_BEGIN,57    };58  },59  axiosReadSuccess: data => {60    return {61      type: actions.AXIOS_READ_SUCCESS,62      data,63    };64  },65  axiosReadErr: err => {66    return {67      type: actions.AXIOS_READ_ERR,68      err,69    };70  },71  axiosUpdateBegin: () => {72    return {73      type: actions.AXIOS_UPDATE_BEGIN,74    };75  },76  axiosUpdateSuccess: data => {77    return {78      type: actions.AXIOS_UPDATE_SUCCESS,79      data,80    };81  },82  axiosUpdateErr: err => {83    return {84      type: actions.AXIOS_UPDATE_ERR,85      err,86    };87  },88  axiosDeleteBegin: () => {89    return {90      type: actions.AXIOS_DELETE_BEGIN,91    };92  },93  axiosDeleteSuccess: data => {94    return {95      type: actions.AXIOS_DELETE_SUCCESS,96      data,97    };98  },99  axiosDeleteErr: err => {100    return {101      type: actions.AXIOS_DELETE_ERR,102      err,103    };104  },105  axiosSingleDataBegin: () => {106    return {107      type: actions.AXIOS_SINGLE_DATA_BEGIN,108    };109  },110  axiosSingleDataSuccess: data => {111    return {112      type: actions.AXIOS_SINGLE_DATA_SUCCESS,113      data,114    };115  },116  axiosSingleDataErr: err => {117    return {118      type: actions.AXIOS_SINGLE_DATA_ERR,119      err,120    };121  },122};...Using AI Code Generation
1describe("GET /user", function() {2  it("respond with json", function(done) {3    request(app)4      .get("/user")5      .set("Accept", "application/json")6      .expect("Content-Type", /json/)7      .expect(200, done);8  });9});10describe("GET /user", function() {11  it("respond with json", function(done) {12    request(app)13      .get("/user")14      .set("Accept", "application/json")15      .expect("Content-Type", /json/)16      .expect(200, done);17  });18});19describe("GET /user", function() {20  it("respond with json", function(done) {21    request(app)22      .get("/user")23      .set("Accept", "application/json")24      .expect("Content-Type", /json/)25      .expect(200, done);26  });27});28describe("GET /user", function() {29  it("respond with json", function(done) {30    request(app)31      .get("/user")32      .set("Accept", "application/json")33      .expect("Content-Type", /json/)34      .expect(200, done);35  });36});37describe("GET /user", function() {38  it("respond with json", function(done) {39    request(app)40      .get("/user")41      .set("Accept", "application/json")42      .expect("Content-Type", /json/)43      .expect(200, done);44  });45});46describe("GET /user", function() {47  it("respond with json", function(done) {48    request(app)49      .get("/user")50      .set("Accept", "application/json")51      .expect("Content-Type", /json/)52      .expect(200, done);53  });54});55describe("GET /user", function() {56  it("respond with json", function(done) {57    request(app)58      .get("/user")59      .set("Accept", "application/json")60      .expect("Content-Type", /json/)61      .expect(200, done);62  });63});Using AI Code Generation
1const sinon = require('sinon');2const axios = require('axios');3const { expect } = require('chai');4describe('Test the axios method', () => {5  let stub;6  beforeEach(() => {7    stub = sinon.stub(axios, 'get');8  });9  afterEach(() => {10    stub.restore();11  });12  it('should return the correct response', async () => {13    const response = {14      data: {15      },16    };17    stub.resolves(response);18    expect(result.data.name).to.equal('John');19  });20});21const sinon = require('sinon');22const axios = require('axios');23const { expect } = require('chai');24describe('Test the axios method', () => {25  let stub;26  beforeEach(() => {27    stub = sinon.stub(axios, 'get');28  });29  afterEach(() => {30    stub.restore();31  });32  it('should return the correct response', async () => {33    const response = {34      data: {35      },36    };37    stub.resolves(response);38    expect(result.data.name).to.equal('John');39  });40});41const sinon = require('sinon');42const axios = require('axios');43const { expect } = require('chai');44describe('Test the axios method', () => {45  let stub;46  beforeEach(() => {47    stub = sinon.stub(axios, 'get');48  });49  afterEach(() => {50    stub.restore();51  });52  it('should return the correct response', async () => {53    const response = {54      data: {55      },56    };57    stub.resolves(response);58    expect(result.data.name).to.equal('John');59  });60});61const sinon = require('sinon');62const axios = require('axios');63const { expect } = require('chai');64describe('Test the axios method', () => {65  let stub;Using AI Code Generation
1const axios = require('axios');2const sinon = require('sinon');3const axiosStub = sinon.stub(axios, 'get');4axiosStub.resolves({ data: 'fake data' });5axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });6axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });7const axios = require('axios');8const sinon = require('sinon');9const axiosStub = sinon.stub(axios, 'get');10axiosStub.resolves({ data: 'fake data' });11axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });12axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });13const axios = require('axios');14const sinon = require('sinon');15const axiosStub = sinon.stub(axios, 'get');16axiosStub.resolves({ data: 'fake data' });17axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });18axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });19const axios = require('axios');20const sinon = require('sinon');21const axiosStub = sinon.stub(axios, 'get');22axiosStub.resolves({ data: 'fake data' });23axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });24axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });25const axios = require('axios');26const sinon = require('sinon');27const axiosStub = sinon.stub(axios, 'get');28axiosStub.resolves({ data: 'fake data' });29axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });30axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });31const axios = require('axios');32const sinon = require('sinon');33const axiosStub = sinon.stub(axios, 'get');34axiosStub.resolves({ data: 'fake data' });35axiosStub.withArgs('wrong url').rejects({ error: 'wrong url' });36axiosStub.withArgs('another wrong url').rejects({ error: 'another wrong url' });Using AI Code Generation
1const axios = require("axios");2const sinon = require("sinon");3const assert = require("assert");4describe("Test axios", () => {5  it("should return data", async () => {6    const data = { name: "test" };7    const res = { data };8    const get = sinon.stub(axios, "get").resolves(res);9    assert.deepStrictEqual(result.data, data);10    get.restore();11  });12});13const axios = require("axios");14const sinon = require("sinon");15const assert = require("assert");16describe("Test axios", () => {17  it("should return data", async () => {18    const data = { name: "test" };19    const res = { data };20    sinon.stub(axios, "get").resolves(res);21    assert.deepStrictEqual(result.data, data);22    axios.get.restore();23  });24});25const axios = require("axios");26const sinon = require("sinon");27const assert = require("assert");28describe("Test axios", () => {29  it("should return data", async () => {30    const data = { name: "test" };31    const res = { data };32    sinon.stub(axios, "get").resolves(res);33    assert.deepStrictEqual(result.data, data);34    axios.get.restore();35  });36});37const axios = require("axios");38const sinon = require("sinon");39const assert = require("assert");40describe("Test axios", () => {41  it("should return data", async () => {42    const data = { name: "test" };43    const res = { data };44    sinon.stub(axios, "get").resolves(res);45    assert.deepStrictEqual(result.data, data);46    axios.get.restore();47  });48});49const axios = require("axios");50const sinon = require("sinon");51const assert = require("assertUsing AI Code Generation
1const axios = require("axios");2const sinon = require("sinon");3const expect = require("chai").expect;4const { describe } = require("mocha");5describe("Test axios", () => {6  it("should return a resolved promise", async () => {7    const response = { data: "data" };8    const stub = sinon.stub(axios, "get").resolves(response);9    expect(result.data).to.equal(response.data);10    stub.restore();11  });12});13const axios = require("axios");14const sinon = require("sinon");15const expect = require("chai").expect;16const { describe } = require("mocha");17describe("Test axios", () => {18  it("should return a rejected promise", async () => {19    const response = { data: "data" };20    const stub = sinon.stub(axios, "get").rejects(response);21    try {22    } catch (error) {23      expect(error).to.equal(response);24    }25    stub.restore();26  });27});28const axios = require("axios");29const sinon = require("sinon");30const expect = require("chai").expect;31const { describe } = require("mocha");32describe("Test axios", () => {33  it("should return a resolved promise", async () => {34    const response = { data: "data" };35    const stub = sinon.stub(axios, "get").resolves(response);36    expect(result.data).to.equal(response.data);37    stub.restore();38  });39});40const axios = require("axios");41const sinon = require("sinon");42const expect = require("chai").expect;43const { describe } = require("mocha");44describe("Test axios", () => {45  it("should return a rejected promise", async () => {46    const response = { data: "data" };47    const stub = sinon.stub(axios,Using AI Code Generation
1import axios from 'axios';2import sinon from 'sinon';3import { expect } from 'chai';4import { service } from './service';5describe('service', () => {6  it('should call axios.get', async () => {7    const getStub = sinon.stub(axios, 'get');8    await service();9    expect(getStub.calledOnce).to.be.true;10  });11});12import axios from 'axios';13export const service = async () => {14  return response;15};16import axios from 'axios';17import sinon from 'sinon';18import { expect } from 'chai';19import { service } from './service';20describe('service', () => {21  it('should call axios.get', async () => {22    const getStub = sinon.stub(axios, 'get').returns({23      data: {24      },25    });26    const response = await service();27    expect(response).to.have.property('userId').to.equal(1);28  });29});30import axios from 'axios';31import sinon from 'sinon';32import { expect } from 'chai';33import { service } from './service';34describe('service', () => {35  it('should call axios.get', async () => {36    const getStub = sinon.stub(axios, 'get').returns({37    });38    const response = await service();39    expect(response).to.have.property('userId').to.equal(1);40  });41});42jest.mock('axios');Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
