meshblu-verifier-http
Version:
Verify Meshblu over HTTP
179 lines (139 loc) • 5.84 kB
text/coffeescript
{afterEach, beforeEach, context, describe, it} = global
{expect} = require 'chai'
shmock = require 'shmock'
Verifier = require '../src/verifier'
enableDestroy = require 'server-destroy'
describe 'Verifier', ->
beforeEach 'start Meshblu', (done) ->
= shmock done
enableDestroy
beforeEach 'instantiate Verifier', ->
= Date.now()
meshbluConfig = hostname: 'localhost', port: .address().port, protocol: 'http'
= new Verifier {meshbluConfig, nonce: }
afterEach 'destroy Meshblu', (done) ->
.destroy done
describe '-> verify', ->
beforeEach ->
= .post '/devices'
= .post '/messages'
= .get '/v2/whoami'
= .patch '/v2/devices/device-uuid'
= .get '/v2/whoami'
= .delete '/devices/device-uuid'
context 'when everything works', ->
beforeEach 'create handlers', (done) ->
=
.send(type: 'meshblu:verifier')
.reply(201, uuid: 'device-uuid', token: 'device-token')
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier')
=
.send devices: ['device-uuid'], payload:
.reply 204
=
.reply(204)
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier', nonce: )
=
.reply(204)
.verify () =>
done
it 'should not error', ->
expect().not.to.exist
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
context 'when register fails', ->
beforeEach (done) ->
=
.send(type: 'meshblu:verifier')
.reply(500)
.verify () =>
done()
it 'should error', ->
expect().to.exist
expect(.step).to.deep.equal "register"
expect(.isDone).to.be.true
context 'when whoami fails', ->
beforeEach (done) ->
=
.send(type: 'meshblu:verifier')
.reply(201, uuid: 'device-uuid', token: 'device-token')
=
.reply(500)
.verify () =>
done()
it 'should error', ->
expect().to.exist
expect(.step).to.deep.equal "whoami"
expect(.isDone).to.be.true
expect(.isDone).to.be.true
context 'when message fails', ->
beforeEach (done) ->
=
.send(type: 'meshblu:verifier')
.reply(201, uuid: 'device-uuid', token: 'device-token')
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier')
=
.send devices: ['device-uuid'], payload:
.reply 504
.verify () =>
done()
it 'should error', ->
expect().to.exist
expect(.step).to.deep.equal "message"
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
context 'when update fails', ->
beforeEach (done) ->
=
.send(type: 'meshblu:verifier')
.reply(201, uuid: 'device-uuid', token: 'device-token')
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier')
=
.send devices: ['device-uuid'], payload:
.reply 204
=
.reply(500)
.verify () =>
done()
it 'should error', ->
expect().to.exist
expect(.step).to.deep.equal "update"
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
context 'when unregister fails', ->
beforeEach (done) ->
=
.send(type: 'meshblu:verifier')
.reply(201, uuid: 'device-uuid', token: 'device-token')
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier')
=
.send devices: ['device-uuid'], payload:
.reply 204
=
.reply(204)
=
.reply(200, uuid: 'device-uuid', type: 'meshblu:verifier', nonce: )
=
.reply(500)
.verify () =>
done()
it 'should error', ->
expect().to.exist
expect(.step).to.deep.equal "unregister"
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true
expect(.isDone).to.be.true