Skip to content
This repository was archived by the owner on Apr 26, 2019. It is now read-only.

Commit 8f7790b

Browse files
committed
test: initial version
1 parent f22c72a commit 8f7790b

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed

tests/index.js

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
var test = require('tape')
2+
var corsHeaders = require('../index')
3+
4+
test('request.headers.origin is undefined', function (t) {
5+
var request = {
6+
headers: {}
7+
}
8+
var continueCalled = false
9+
var reply = {
10+
continue: function () {
11+
continueCalled = true
12+
}
13+
}
14+
corsHeaders(request, reply)
15+
t.deepEqual(Object.keys(request.headers), [], 'sets no headers')
16+
t.equal(continueCalled, true, 'reply.continue called')
17+
t.end()
18+
})
19+
20+
test('request is boom error', function (t) {
21+
var request = {
22+
headers: {
23+
origin: 'example.com'
24+
},
25+
response: {
26+
isBoom: true,
27+
output: {
28+
headers: {},
29+
statusCode: 500
30+
}
31+
}
32+
}
33+
var continueCalled = false
34+
var reply = {
35+
continue: function () {
36+
continueCalled = true
37+
}
38+
}
39+
corsHeaders(request, reply)
40+
t.equal(request.response.output.headers['access-control-allow-origin'], 'example.com', 'sets access-control-allow-origin')
41+
t.equal(request.response.output.headers['access-control-allow-credentials'], 'true', 'sets access-control-allow-credentials')
42+
t.equal(request.response.output.statusCode, 500, 'passes statusCode')
43+
t.equal(continueCalled, true, 'reply.continue called')
44+
t.end()
45+
})
46+
47+
test('options request without acces-control-request headers', function (t) {
48+
var request = {
49+
method: 'options',
50+
headers: {
51+
origin: 'example.com'
52+
},
53+
response: {
54+
headers: {},
55+
statusCode: 500
56+
}
57+
}
58+
var continueCalled = false
59+
var reply = {
60+
continue: function () {
61+
continueCalled = true
62+
}
63+
}
64+
corsHeaders(request, reply)
65+
t.equal(request.response.headers['access-control-allow-origin'], 'example.com', 'sets access-control-allow-origin')
66+
t.equal(request.response.headers['access-control-allow-credentials'], 'true', 'sets access-control-allow-credentials')
67+
t.equal('access-control-allow-headers' in request.response.headers, false, 'does not set access-control-allow-headers')
68+
t.equal('access-control-allow-methods' in request.response.headers, false, 'does not set access-control-allow-methods')
69+
t.equal(request.response.statusCode, 200, 'sets statusCode to 200')
70+
t.equal(continueCalled, true, 'reply.continue called')
71+
t.end()
72+
})
73+
test('options request', function (t) {
74+
var request = {
75+
method: 'options',
76+
headers: {
77+
origin: 'example.com',
78+
'access-control-request-headers': 'x-header',
79+
'access-control-request-method': 'GET'
80+
},
81+
response: {
82+
headers: {},
83+
statusCode: 500
84+
}
85+
}
86+
var continueCalled = false
87+
var reply = {
88+
continue: function () {
89+
continueCalled = true
90+
}
91+
}
92+
corsHeaders(request, reply)
93+
t.equal(request.response.headers['access-control-allow-origin'], 'example.com', 'sets access-control-allow-origin')
94+
t.equal(request.response.headers['access-control-allow-credentials'], 'true', 'sets access-control-allow-credentials')
95+
t.equal(request.response.headers['access-control-allow-headers'], 'x-header', 'sets access-control-allow-headers')
96+
t.equal(request.response.headers['access-control-allow-methods'], 'GET', 'sets access-control-allow-methods')
97+
t.equal(request.response.statusCode, 200, 'sets statusCode to 200')
98+
t.equal(continueCalled, true, 'reply.continue called')
99+
t.end()
100+
})

0 commit comments

Comments
 (0)