UNPKG

1.63 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 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# Tests
28describe "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