teqlabs-testify
v0.6.0
Published
Async ```request``` wrapper for testing API endpoints with token and json data.
Downloads
16
Maintainers
Readme
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": "[email protected]",
"name": "Hugh Boylan",
"role": "client"
}
]
POST Request
api.post('/users/auth', { email:'[email protected]', password:'password1' }, function (res, user) {
assert.equal(res.statusCode, 200)
})
POST https://localhost:8000/users/auth
{
"email": "[email protected]",
"password": "password1"
}
RESPONSE: [200]
{
"_id": "532b95856006dd7f10000003",
"email": "[email protected]",
"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": "[email protected]",
"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": "[email protected]",
"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