teqlabs-testify

0.6.0 • Public • Published

Setup

var Test = require('teqlabs-testify')
  , assert = require('assert')
 
var api = new Test({
  host: 'http://localhost:8000'   // api host
  print: false,                   // print request/response messages
  headers: {},                    // headers to send with every request
  params: {},                     // params to send with every request
  done: function(body){}          // called before every request callback
})

Methods

Method Action
api.get(path, next) GET Request
api.post(path, json, next) POST Request
api.put(path, json, next) PUT Request
api.del(path, json, next) DELETE Request
api.param(key, val) Set Param
api.header(key, val) Set Header
api.bearer(token) Set Bearer

GET Request

api.get('/users', function (res, users) {
  assert.equal(res.statusCode, 200)
  assert.equal(users[0].role, 'client')
  // etc...
})
GET https://localhost:8000/users
{}
RESPONSE: [200]
[
  {
    "_id": "532b95856006dd7f10000003",
    "email": "bluehugh2@gmail.com",
    "name": "Hugh Boylan",
    "role": "client"
  }
]

POST Request

api.post('/users/auth', { email:'bluehugh2@gmail.com', password:'password1' }, function (res, user) {
  assert.equal(res.statusCode, 200)
})
POST https://localhost:8000/users/auth
{
  "email": "bluehugh2@gmail.com",
  "password": "password1"
}
RESPONSE: [200]
{
  "_id": "532b95856006dd7f10000003",
  "email": "bluehugh2@gmail.com",
  "name": "Hugh Boylan",
  "role": "client",
  "token": "youshallnotpass"
}

PUT Request

api.put('/users', { name:"hjboylan" }, function (res, user) {
  assert.equal(res.statusCode, 200)
  assert.equal(user.name, "hjboylan")
})
PUT https://localhost:8000/users
{
  "name": "hjboylan"
}
RESPONSE: [200]
{
  "_id": "532b95856006dd7f10000003",
  "email": "bluehugh2@gmail.com",
  "name": "hjboylan",
  "role": "client"
}

DELETE Request

api.del('/users', { name:'hjboylan', password:"password1" }, function (res, body) {
  assert.equal(res.statusCode, 200)
  assert.equal(body, null)
})
DELETE https://localhost:8000/users
{
  "name": "hjboylan",
  "password": "password1"
}
RESPONSE: [200]
{
  "_id": "532b95856006dd7f10000003",
  "email": "bluehugh2@gmail.com",
  "name": "hjboylan",
  "role": "client"
}

Set Param

Add a param to all future requests (npm-request)[https://www.npmjs.com/package/request#requestoptions-callback]

api.param('json', false)
api.param('timeout', 1000)

Set Header

Add a header to all future requests

api.header('X-Auth', 'therecanonlybeone')

Set Bearer

Convenience method for api.header('X-Authorization', 'Bearer: youshallnotpass'). Add a feature request on GitHub for more functions like this to simplify your tests. passport-http-bearer

api.bearer('youshallnotpass')

Example App

Look for teqlabs-testify-example coming soon

Package Sidebar

Install

npm i teqlabs-testify

Weekly Downloads

16

Version

0.6.0

License

MIT

Last publish

Collaborators

  • hjboylan