1 | client = require('./client')
|
2 | server = require('connect').createServer()
|
3 | assert = require 'assert'
|
4 |
|
5 |
|
6 | server.use require('../lib/lazorse').app ->
|
7 | for method in client.METHODS
|
8 | route = {}
|
9 | uri = "/#{method}me"
|
10 | route[uri] = {}
|
11 | route[uri][method] = -> @ok "#{method}"
|
12 | @route route
|
13 |
|
14 | @route '/indexed':
|
15 | shortName: 'discoverableResource'
|
16 | GET: -> @ok 'found it'
|
17 |
|
18 | @route '/404':
|
19 | GET: -> @error 'NotFound', 'string error name', 'works'
|
20 |
|
21 | @route '/500':
|
22 | GET: -> @next new Error "I'm an unknown error type"
|
23 |
|
24 | @route '/422':
|
25 | GET: -> @error 'InvalidParameter', 'bad param'
|
26 |
|
27 |
|
28 | describe "A basic app", ->
|
29 | before (start) ->
|
30 | server.listen 0, 'localhost', ->
|
31 | client.usePort server.address().port
|
32 | start()
|
33 |
|
34 | after -> server.close()
|
35 |
|
36 | it "has an index with one resource", (done) ->
|
37 | client.GET '/', (res, resources) ->
|
38 | assert.equal res.statusCode, 200
|
39 | assert.equal resources.length, 1
|
40 | assert.equal resources[0].shortName, 'discoverableResource'
|
41 | done()
|
42 |
|
43 |
|
44 | it "will return 404 if no route matches", (done) ->
|
45 | client.GET "/the-nonexistant-route", (res) ->
|
46 | assert.equal res.statusCode, 404
|
47 | done()
|
48 |
|
49 | for errcode in [404, 422, 500]
|
50 | do (errcode) ->
|
51 | it "can return #{errcode}", (done) ->
|
52 | client.GET "/#{errcode}", (res) ->
|
53 | assert.equal res.statusCode, errcode
|
54 | done()
|
55 |
|
56 | for method in client.METHODS
|
57 | do (method) ->
|
58 | it "can handle the #{method} method", (done) ->
|
59 | client[method] "/#{method}me", (res) ->
|
60 | assert.equal res.statusCode, 200
|
61 | done()
|
62 |
|