0.2.1 • Published 5 years ago

@mock/request v0.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

@mock/request npm

Mock HTTP(S) requests through redirecting to a temporary HTTP(S) server allowing to handle a request in whatever way.

Install

$ yarn add --dev @mock/request

Usage

const mockRequest: (file: string, callback: http.RequestListener) => () => void
// fetch-data.js
import fetch from 'node-fetch'

export const fetchData = async (): Promise<{ [key: string]: any }> => {
  const response = await fetch('https://api.thecatapi.com/v1/breeds')
  const data = await response.json()

  return data
}
import test from 'blue-tape'
import { mockRequest } from '@mock/request'

test('fetchData', async (t) => {
  const unmockRequest = mockRequest('./fetch-data', (req, res) => {
    if (req.url === 'https://api.thecatapi.com/v1/breeds' && req.method === 'GET') {
      res.end(JSON.stringify({ fake: true }))
    } else {
      t.fail('should not get here')
    }
  })

  const { fetchData } = await import('./fetch-data')
  const data = await fetchData()

  t.deepEqual(
    data,
    { fake: true },
    'should fetch data'
  )

  unmockRequest()
})