Socket
Book a DemoInstallSign in
Socket

@heise/request-promise-native-record

Package Overview
Dependencies
Maintainers
3
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@heise/request-promise-native-record

Records and plays back responses from remote web services so you can test your code in peace.

1.0.13
latest
Source
npmnpm
Version published
Maintainers
3
Created
Source

request-promise-native-record

Build Status Greenkeeper badge Dependency Status JavaScript Style Guide

When writing unit tests for APIs that consume remote web services, your goal is to test your code, not the network or remote web service. request-promise-native-record records the answers of these web services and plays them back later.

If a recording does not exist or the environment variable HTTP_MODE is set to record, HTTP responses are written to files when running your tests. You may want to check these files into your VCS. If recordings are available, they will be used automatically for further test runs. No network traffic will occur from now on.

Installation

yarn add --dev @heise/request-promise-native-record

or

npm install --save-dev @heise/request-promise-native-record

Usage

lib/my-api.js:

const request = require('request-promise-native')

class Api {
  static getFoo() {
    return request.get('http://example.com/')
  }
}

module.exports = Api

test/my-api.js:

const assert = require('assert')
const record = require('@heise/request-promise-native-record')

record.start({folder: '/tmp'})
const Api = require('../lib/my-api')

describe('my description', () => {
  it('should test my api', async () => {
    let response = await Api.getFoo() // 1. call: network request
    let response = await Api.getFoo() // 2. call: read from fs
    assert.ok(response.includes('Example Domain'))
  })
})

Generated file:

$ cat /tmp/14ba12b98882bca3bc00abff8735175a2544a9c1aa64794e85503198d84595b5.json 
"<!doctype html>\n<html>\n<head>[...]"

Storing/Retrieving response headers, status codes and response body

To save the full response instead of just the response body, use the option resolveWithFullResponse. The Authorization header is removed from the headers object before writing to the hard disk.

lib/my-api.js:

const request = require('request-promise-native')

class Api {
  static getFoo() {
    return request.get('http://example.com/', {resolveWithFullResponse: true})
  }
}

module.exports = Api

Limitations

  • Currently only request-promise-native is supported as HTTP lib.
  • Currently only request.get() is supported.
  • The generated files are stored flat in the specified directory. You may have to clean up the files by yourself.

FAQs

Package last updated on 11 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.