UNPKG

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