1.0.9 • Published 10 years ago

express-assert v1.0.9

Weekly downloads
2
License
MIT
Repository
github
Last release
10 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

10 years ago

1.0.8

10 years ago

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago