1.0.9 • Published 8 years ago

express-assert v1.0.9

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

Usage

import {expect} from 'chai'
import express from 'express'
import supertest from 'supertest'
import ExpressAssert from 'express-assert'

const assert = ExpressAssert(express, supertest)
const {
  request,
  get,
  post
} = assert

describe('express assert', () => {
  it('should request as normal', done => {
    const cut = (req, res, next) => {
      expect(req.method).to.eql('GET')
      res.json(true)
    }

    request('get', cut)
      .expect(res => {
        expect(res.body).to.be.true
      })
      .end(done)
  })

  it('should catch errors', done => {
    const err = new Error('Yup!')
    const cut = (req, res, next) => {
      expect(req.method).to.eql('GET')
      next(err)
    }

    get(cut)
      .expectNextError(error => {
        expect(error).to.equal(err)
      })
      .end(done)
  })

  it('should catch errors in errors @wip', done => {
    const error = new Error('Yup!')
    const cut = (req, res, next) => {
      expect(req.method).to.eql('POST')
      next(error)
    }

    post(cut)
      .expectNextError(err => {
        throw err
      })
      .end(err => {
        expect(err).to.equal(error)
        done()
      })
  })

  it('should request path', done => {
    const route = express.Router()
    route.delete('/assumption', (req, res, next) => {
      expect(req.method).to.eql('DELETE')
      res.json(true)
    })

    del('/assumption', route)
      .expect(res => {
        expect(res.body).to.be.true
      })
      .end(done)
  })
})

Development

Ideally this should be in some git hook; but the minimal dev flow is:

$ npm run dev (or npm test)
$ git commit ...
$ npm run boom

Note: major and minor tagging is a manual process :|

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago