MockResponse.coffee 989 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. sinon = require "sinon"
  2. class MockResponse
  3. constructor: ->
  4. @rendered = false
  5. @redirected = false
  6. @returned = false
  7. @headers = {}
  8. render: (template, variables) ->
  9. @success = true
  10. @rendered = true
  11. @returned = true
  12. @renderedTemplate = template
  13. @renderedVariables = variables
  14. @callback() if @callback?
  15. redirect: (url) ->
  16. @success = true
  17. @redirected = true
  18. @returned = true
  19. @redirectedTo = url
  20. @callback() if @callback?
  21. send: (status, body) ->
  22. if arguments.length < 2
  23. if typeof status != "number"
  24. body = status
  25. status = 200
  26. @statusCode = status
  27. @returned = true
  28. if 200 <= status < 300
  29. @success = true
  30. else
  31. @success = false
  32. @body = body if body
  33. @callback() if @callback?
  34. setHeader: (header, value) ->
  35. @headers[header] = value
  36. setTimeout: (@timout)->
  37. header: sinon.stub()
  38. contentType: sinon.stub()
  39. end: (data, encoding) ->
  40. @callback() if @callback
  41. type: (type) -> @type = type
  42. module.exports = MockResponse