1 | MessageHandler = require '../lib/freddy/message_handler'
|
2 | should = require 'should'
|
3 | TestHelper = (require './test_helper')
|
4 |
|
5 | describe 'MessageHandler', ->
|
6 |
|
7 | before -> @properties = prop: 'value'
|
8 |
|
9 | beforeEach ->
|
10 | @messageHandler = new MessageHandler TestHelper.logger('warn'), @properties
|
11 |
|
12 | it 'keeps properties', ->
|
13 | @messageHandler.properties.should.eql(@properties)
|
14 |
|
15 | it 'has promise for checking for reponse', ->
|
16 | @messageHandler.whenResponded.should.be.ok
|
17 |
|
18 | context 'when success', ->
|
19 | before -> @response = my: 'resp'
|
20 | beforeEach -> @messageHandler.success(@response)
|
21 |
|
22 | it 'resolves response promise with the response', (done) ->
|
23 | @messageHandler.whenResponded.done (response) =>
|
24 | response.should.eql(@response)
|
25 | done()
|
26 |
|
27 | context 'when nacked', ->
|
28 |
|
29 | context 'with error message', ->
|
30 | before -> @error = 'bad'
|
31 | beforeEach -> @messageHandler.error(@error)
|
32 |
|
33 | it 'resolves response promise with error', (done) ->
|
34 | @messageHandler.whenResponded.done (->), (error) =>
|
35 | error.should.eql(@error)
|
36 | done()
|
37 |
|
38 | context 'without error message', ->
|
39 | before -> @error = "Couldn't process message"
|
40 | beforeEach -> @messageHandler.error()
|
41 | it "resolves response with error #{@error}", (done) ->
|
42 | @messageHandler.whenResponded.done (->), (error) =>
|
43 | error.should.eql(@error)
|
44 | done()
|