Use some class vars in broker to eliminate globals

This commit is contained in:
Arlo Breault 2019-05-01 10:48:07 -04:00
parent bd5887a876
commit 7ce3c83a31
2 changed files with 17 additions and 18 deletions

View file

@ -5,15 +5,14 @@ Browser snowflakes must register with the broker in order
to get assigned to clients. to get assigned to clients.
### ###
STATUS_OK = 200
STATUS_GONE = 410
STATUS_GATEWAY_TIMEOUT = 504
MESSAGE_TIMEOUT = 'Timed out waiting for a client offer.'
MESSAGE_UNEXPECTED = 'Unexpected status.'
# Represents a broker running remotely. # Represents a broker running remotely.
class Broker class Broker
@STATUS_OK = 200
@STATUS_GONE = 410
@STATUS_GATEWAY_TIMEOUT = 504
@MESSAGE_TIMEOUT = 'Timed out waiting for a client offer.'
@MESSAGE_UNEXPECTED = 'Unexpected status.'
clients: 0 clients: 0
@ -39,15 +38,15 @@ class Broker
xhr.onreadystatechange = -> xhr.onreadystatechange = ->
return if xhr.DONE != xhr.readyState return if xhr.DONE != xhr.readyState
switch xhr.status switch xhr.status
when STATUS_OK when Broker.STATUS_OK
fulfill xhr.responseText # Should contain offer. fulfill xhr.responseText # Should contain offer.
when STATUS_GATEWAY_TIMEOUT when Broker.STATUS_GATEWAY_TIMEOUT
reject MESSAGE_TIMEOUT reject Broker.MESSAGE_TIMEOUT
else else
log 'Broker ERROR: Unexpected ' + xhr.status + log 'Broker ERROR: Unexpected ' + xhr.status +
' - ' + xhr.statusText ' - ' + xhr.statusText
snowflake.ui.setStatus ' failure. Please refresh.' snowflake.ui.setStatus ' failure. Please refresh.'
reject MESSAGE_UNEXPECTED reject Broker.MESSAGE_UNEXPECTED
@_xhr = xhr # Used by spec to fake async Broker interaction @_xhr = xhr # Used by spec to fake async Broker interaction
@_postRequest id, xhr, 'proxy', id @_postRequest id, xhr, 'proxy', id
@ -60,10 +59,10 @@ class Broker
xhr.onreadystatechange = -> xhr.onreadystatechange = ->
return if xhr.DONE != xhr.readyState return if xhr.DONE != xhr.readyState
switch xhr.status switch xhr.status
when STATUS_OK when Broker.STATUS_OK
dbg 'Broker: Successfully replied with answer.' dbg 'Broker: Successfully replied with answer.'
dbg xhr.responseText dbg xhr.responseText
when STATUS_GONE when Broker.STATUS_GONE
dbg 'Broker: No longer valid to reply with answer.' dbg 'Broker: No longer valid to reply with answer.'
else else
dbg 'Broker ERROR: Unexpected ' + xhr.status + dbg 'Broker ERROR: Unexpected ' + xhr.status +

View file

@ -25,7 +25,7 @@ describe 'Broker', ->
# fake successful request and response from broker. # fake successful request and response from broker.
spyOn(b, '_postRequest').and.callFake -> spyOn(b, '_postRequest').and.callFake ->
b._xhr.readyState = b._xhr.DONE b._xhr.readyState = b._xhr.DONE
b._xhr.status = STATUS_OK b._xhr.status = Broker.STATUS_OK
b._xhr.responseText = 'fake offer' b._xhr.responseText = 'fake offer'
b._xhr.onreadystatechange() b._xhr.onreadystatechange()
poll = b.getClientOffer() poll = b.getClientOffer()
@ -35,7 +35,7 @@ describe 'Broker', ->
expect(desc).toEqual 'fake offer' expect(desc).toEqual 'fake offer'
done() done()
.catch -> .catch ->
fail 'should not reject on STATUS_OK' fail 'should not reject on Broker.STATUS_OK'
done() done()
it 'rejects if the broker timed-out', (done) -> it 'rejects if the broker timed-out', (done) ->
@ -43,7 +43,7 @@ describe 'Broker', ->
# fake timed-out request from broker # fake timed-out request from broker
spyOn(b, '_postRequest').and.callFake -> spyOn(b, '_postRequest').and.callFake ->
b._xhr.readyState = b._xhr.DONE b._xhr.readyState = b._xhr.DONE
b._xhr.status = STATUS_GATEWAY_TIMEOUT b._xhr.status = Broker.STATUS_GATEWAY_TIMEOUT
b._xhr.onreadystatechange() b._xhr.onreadystatechange()
poll = b.getClientOffer() poll = b.getClientOffer()
expect(poll).not.toBeNull() expect(poll).not.toBeNull()
@ -52,7 +52,7 @@ describe 'Broker', ->
fail 'should not fulfill on GATEWAY_TIMEOUT' fail 'should not fulfill on GATEWAY_TIMEOUT'
done() done()
, (err) -> , (err) ->
expect(err).toBe MESSAGE_TIMEOUT expect(err).toBe Broker.MESSAGE_TIMEOUT
done() done()
it 'rejects on any other status', (done) -> it 'rejects on any other status', (done) ->
@ -69,7 +69,7 @@ describe 'Broker', ->
fail 'should not fulfill on non-OK status' fail 'should not fulfill on non-OK status'
done() done()
, (err) -> , (err) ->
expect(err).toBe MESSAGE_UNEXPECTED expect(err).toBe Broker.MESSAGE_UNEXPECTED
expect(b._xhr.status).toBe 1337 expect(b._xhr.status).toBe 1337
done() done()