-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.coffee
61 lines (52 loc) · 1.73 KB
/
test.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
connect = require 'connect'
path = require 'path'
fs = require 'fs'
alchemist = require 'alchemist-middleware'
describe 'basic', ->
before ->
@app = connect().use(alchemist('./')).use(apology())
it 'should be registered as middleware', ->
(-> connect().use(apology())).should.not.throw()
it 'should return default 404', (done) ->
chai.request(@app).get('/not-found.html').res (res) ->
res.should.have.status(404)
res.should.be.html
base = fs.readFileSync(
path.join(__dirname, '../public/index.html')
'utf8'
)
res.text.should.equal(base)
done()
describe 'custom with relative path', ->
before ->
@app = connect()
.use(alchemist('./'))
.use(apology('not-found.html'))
it 'should return 500 when passed error page is missing', (done) ->
chai.request(@app).get('/not-found.html').res (res) ->
res.should.have.status(500)
res.should.be.html
res.text.should.equal("Error: ENOENT, open 'not-found.html'\n\n")
done()
describe 'custom with absolute path', ->
before ->
custom = path.join(base_path, 'custom.html')
@app = connect()
.use(alchemist('./'))
.use(apology(custom))
it 'should return custom 404', (done) ->
chai.request(@app).get('/not-found.html').res (res) ->
res.should.have.status(404)
res.should.be.html
res.text.should.equal("<p>custom</p>\n")
done()
describe 'forced error', ->
before ->
@app = connect()
.use((req, res, next)-> next('forced error'))
.use(apology())
it 'should return 500', (done) ->
chai.request(@app).get('/not-found.html').res (res) ->
res.should.have.status(500)
res.should.be.html
done()