Fix jasmine spec for broker async request

This commit is contained in:
Serene Han 2016-02-09 18:13:54 -08:00
parent 548c100160
commit bb9eb721e2
2 changed files with 50 additions and 33 deletions

View file

@ -3,36 +3,48 @@ jasmine tests for Snowflake broker
###
# fake xhr
# class XMLHttpRequest
class XMLHttpRequest
constructor: ->
@onreadystatechange = null
open: ->
setRequestHeader: ->
send: ->
onreadystatechange: ->
DONE: 1
describe 'Broker', ->
it 'can be created', ->
b = new Broker('fake')
b = new Broker 'fake'
expect(b.url).toEqual 'https://fake/'
expect(b.id).not.toBeNull()
it 'polls for client offer', (done) ->
b = new Broker('fake')
# TODO: fix this
it 'polls and promises a client offer', (done) ->
b = new Broker 'fake'
# fake successful request
spyOn(b, 'sendRequest').and.callFake ->
b.request.readyState = b.request.DONE
b.request.status = STATUS_OK
b.request.responseText = 'test'
b.request.onreadystatechange()
poll = b.getClientOffer()
spyOn(b.request, 'open')
spyOn(b.request, 'send').and.callFake ->
b.onreadystatechange()
poll.then = ->
done()
expect(poll).not.toBeNull()
# expect(b.request.open).toHaveBeenCalled()
# expect(b.request.send).toHaveBeenCalled()
# fake successful poll
b.request.readyState = XMLHttpRequest.DONE
b.request.status = STATUS_OK
b.request.responseText = 'test'
done()
poll.then (desc) =>
expect(desc).toEqual 'test'
done()
it 'requests correctly', ->
b = new Broker 'fake'
b.request = new XMLHttpRequest()
spyOn(b.request, 'open')
spyOn(b.request, 'setRequestHeader')
spyOn(b.request, 'send')
b.sendRequest()
expect(b.request.open).toHaveBeenCalled()
expect(b.request.setRequestHeader).toHaveBeenCalled()
expect(b.request.send).toHaveBeenCalled()
it 'responds to the broker with answer', ->
# TODO
# TODO: fix
b = new Broker 'fake'
b.sendAnswer 'foo'