UNPKG

rest-rsmq

Version:
162 lines (136 loc) 4.24 kB
_ = require "underscore" should = require "should" async = require "async" app = require "../app" http = require "../test/support/http" # describe 'REST-rsmq Test', -> before (done) -> http.createServer(app,done) return after (done) -> done() return q1 = "mytestQueue" m1 = null m2 = null it 'POST /queues/mytestQueue should return 200 and create the queue', (done) -> http.request().post('/queues/' + q1) .set('Content-Type','application/json') .write(JSON.stringify({ vt: 20, maxsize: 2048 })) .end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.result.should.equal(1) done() return return it 'POST /messages/mytestQueue should return 200 and send message 1', (done) -> http.request().post('/messages/' + q1) .set('Content-Type','application/json') .write(JSON.stringify({ message: "Hello World!"})) .end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.id.length.should.equal(32) m1 = body.id done() return return it 'POST /messages/mytestQueue should return 200 and send message 2', (done) -> http.request().post('/messages/' + q1) .set('Content-Type','application/json') .write(JSON.stringify({ message: "Foo", delay: 20})) .end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.id.length.should.equal(32) m2 = body.id done() return return it 'GET /messages/mytestQueue should return message 1', (done) -> http.request().get('/messages/' + q1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.id.should.equal(m1) done() return return it 'GET /messages/mytestQueue should not return a message', (done) -> http.request().get('/messages/' + q1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) should.not.exist(body.id) done() return return it 'PUT /messages/mytestQueue/message2 to set vt to 0', (done) -> http.request().put('/messages/' + q1 + '/' + m2 + '?vt=0').end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.result.should.equal (1) done() return return it 'GET /messages/mytestQueue should return message 2', (done) -> http.request().get('/messages/' + q1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.id.should.equal(m2) done() return return it 'GET /messages/mytestQueue should not return a message', (done) -> http.request().get('/messages/' + q1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) should.not.exist(body.id) done() return return it 'DELETE /messages/mytestQueue/:message1 should delete message 1', (done) -> http.request().delete('/messages/' + q1 + '/' + m1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.result.should.equal(1) done() return return it 'DELETE /messages/mytestQueue/:message1 should fail', (done) -> http.request().delete('/messages/' + q1 + '/' + m1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.result.should.equal(0) done() return return it 'DELETE /messages/mytestQueue/:message2 should delete message 2', (done) -> http.request().delete('/messages/' + q1 + '/' + m2).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.result.should.equal(1) done() return return it 'GET /queues/mytestQueue should return our queue attributes', (done) -> http.request().get('/queues/' + q1).end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.maxsize.should.equal(2048) body.totalsent.should.equal(2) done() return return it 'GET /queues should return our queue name', (done) -> http.request().get('/queues').end (resp) -> resp.statusCode.should.equal(200) body = JSON.parse(resp.body) body.queues.should.containEql(q1) done() return return it 'DELETE /queues/mytestQueue should return 200 ', (done) -> http.request().delete('/queues/' + q1).expect(200,done) return return