1 | client = require('./client')
|
2 | server = require('connect').createServer()
|
3 | assert = require('assert')
|
4 |
|
5 | TeapotError = ->
|
6 | @code = 418
|
7 | @message = "I'm a teapot"
|
8 | Error.captureStackTrace @, TeapotError
|
9 |
|
10 | CoffeepotError = ->
|
11 | @code = 418
|
12 | @message = "I'm a coffeepot"
|
13 | Error.captureStackTrace @, TeapotError
|
14 |
|
15 | server.use require('../lib/lazorse').app ->
|
16 | @route '/byNameUnregistered':
|
17 | GET: -> @error "TeapotError"
|
18 |
|
19 | @route '/byNameRegistered':
|
20 | GET: -> @error "TeapotError"
|
21 |
|
22 | @route '/usingConstructor':
|
23 | GET: -> @error TeapotError
|
24 |
|
25 | describe "An app that uses custom errors", ->
|
26 | before (start) ->
|
27 | server.listen 0, 'localhost', ->
|
28 | client.usePort server.address().port
|
29 | start()
|
30 |
|
31 | after -> server.close()
|
32 |
|
33 | it "can't find errors by name when they aren't registered", (done) ->
|
34 | client.GET '/byNameUnregistered', (res) ->
|
35 | assert.equal res.statusCode, 500
|
36 | done()
|
37 |
|
38 | it "can find errors by name when they are registered", (done) ->
|
39 | client.GET '/byNameRegistered', (res) ->
|
40 | assert.equal res.statusCode, 500
|
41 | done()
|
42 |
|
43 |
|
44 | it 'treats functions as constructors regardless of registration', (done) ->
|
45 | client.GET '/usingConstructor', (res) ->
|
46 | assert.equal res.statusCode, 418
|
47 | done()
|