-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
117 lines (89 loc) · 2.42 KB
/
test.js
File metadata and controls
117 lines (89 loc) · 2.42 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import express from 'express'
import request from 'supertest'
import test from 'ava'
import withAllow from './src/index.js'
const generateExpress =
() => {
const app = express()
return app
}
// test cases
test('express only one request method allowed', async t => {
const app = generateExpress()
const ok = 'This request is allowed.'
const handler =
(req, res) => {
return res.send(ok)
}
app.all('/', withAllow(handler, ['GET']))
let result = await request(app).get('/')
t.is(result.text, ok)
result = await request(app).post('/')
t.is(result.statusCode, 405)
result = await request(app).put('/')
t.is(result.statusCode, 405)
result = await request(app).patch('/')
t.is(result.statusCode, 405)
result = await request(app).delete('/')
t.is(result.statusCode, 405)
})
test('express all request methods are allowed', async t => {
const app = generateExpress()
const ok = 'Bana dedi rica ederim dedi.'
const handler =
(req, res) => {
return res.send(ok)
}
app.all('/', withAllow(handler, '*'))
let result = await request(app).get('/')
t.is(result.text, ok)
result = await request(app).post('/')
t.is(result.text, ok)
result = await request(app).put('/')
t.is(result.text, ok)
result = await request(app).patch('/')
t.is(result.text, ok)
result = await request(app).delete('/')
t.is(result.text, ok)
})
test('express all request methods are disallowed', async t => {
const app = generateExpress()
const ok = 'Sidar.'
const handler =
(req, res) => {
return res.send(ok)
}
app.all('/', withAllow(handler))
let result = await request(app).get('/')
t.is(result.statusCode, 405)
result = await request(app).post('/')
t.is(result.statusCode, 405)
result = await request(app).put('/')
t.is(result.statusCode, 405)
result = await request(app).patch('/')
t.is(result.statusCode, 405)
result = await request(app).delete('/')
t.is(result.statusCode, 405)
})
test('passing string (other than asterisk) to "allowedMethods"', async t => {
const handler =
(req, res) => {
return res.send('OK')
}
t.throws(
() => {
withAllow(handler, 'Meymun')
}
)
})
test('passing different type of items to "allowedMethods"', async t => {
const handler =
(req, res) => {
return res.send('OK')
}
t.throws(
() => {
withAllow(handler, ['GET', true, 1, { kardeslerim: true }])
}
)
})