Skip to content

Simple request and response mock objects to pass into Express routes when testing using Sinon.

License

Notifications You must be signed in to change notification settings

NBTSolutions/sinon-express-mock

 
 

Repository files navigation

sinon-express-mock

Simple request and response mock objects to pass into Express routes when testing using Sinon.

The mock objects attach Sinon spys to request methods. See src/index.js for a full list of stubbed out methods.

Install

npm install --save-dev sinon-express-mock sinon

Depends on:

  • Node v4+ (or Object.assign support needed)
  • Sinon

Usage

Contents of src/foo.js:

export default (req, res) => {
  res.json({ foo: req.body.foo })
}

Contents of test/foo-test.js:

import route from '../src/foo'
import chai, { expect } from 'chai'
import sinonChai from 'sinon-chai'
import { mockReq, mockRes } from 'sinon-express-mock'

chai.use(sinonChai);

describe('my route', () => {
  it('should foo the bar', () => {
    const request = {
      body: {
        foo: 'bar',
      },
    }
    const req = mockReq(request)
    const res = mockRes()

    route(req, res)

    expect(res.json).to.be.calledWith({ foo: request.body.foo })
  })
})

Changelog

v2.0.3

  • res.write() is now stubbed.

v2.0.0

  • Make sinon a peerDependency.

v1.3.1

  • Bundle fix from #3

pre v1.3.1

  • Changelog didn't exist! 😱

Credits

Dana Woodman and contributors

License

MIT

About

Simple request and response mock objects to pass into Express routes when testing using Sinon.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%