-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest.js
More file actions
82 lines (72 loc) · 2.18 KB
/
Copy pathtest.js
File metadata and controls
82 lines (72 loc) · 2.18 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
/* eslint-env jest */
const bc = require('./index')
// default auth header value with credentials admin:admin
const requestWithCredentialsAdminAdmin = 'Basic YWRtaW46YWRtaW4='
// request/response mocks
const request = {
header: '',
getHeader: function () {
return this.header
}
}
const response = {
headers: {},
setHeader: function (a, b) {
this.headers[a] = b
}
}
afterEach(() => {
request.header = ''
response.headers = {}
})
test('can do successfull auth with array', () => {
// setup
request.header = requestWithCredentialsAdminAdmin
const result = bc(request, response, [['admin', 'admin']])
expect(result).toBeTruthy()
})
test('can do successfull auth with function', () => {
// setup
request.header = requestWithCredentialsAdminAdmin
const result = bc(request, response, credentials => credentials.name === 'admin' && credentials.pass === 'admin')
expect(result).toBeTruthy()
})
test('can do unsuccessfull auth with array', () => {
// setup
request.header = 'Basic YWRtaW46YWRtaW4='
const result = bc(request, response, [['foo', 'bar']])
expect(result).toBeFalsy()
})
test('can do unsuccessfull auth with function', () => {
// setup
request.header = requestWithCredentialsAdminAdmin
const result = bc(request, response, credentials => credentials.name === 'foo' && credentials.pass === 'bar')
expect(result).toBeFalsy()
})
test('does set basic auth header', () => {
// setup
request.header = requestWithCredentialsAdminAdmin
bc(request, response, [['foo', 'bar']])
expect(response.headers).toEqual({'WWW-Authenticate': 'Basic realm="example"'})
})
test('no auth header found', () => {
const result = bc(request, response, [['foo', 'bar']])
expect(result).toBeFalsy()
})
test('no auth header string', () => {
request.header = {}
const result = bc(request, response, [['foo', 'bar']])
expect(result).toBeFalsy()
})
test('no auth method or array given', () => {
// setup
request.header = requestWithCredentialsAdminAdmin
const result = bc(request, response)
expect(result).toBeFalsy()
})
test('malformed auth given', () => {
// setup
request.header = 'Basic '
const result = bc(request, response)
expect(result).toBeFalsy()
})