This repository has been archived by the owner on Mar 28, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcookieToSession.test.js
87 lines (78 loc) · 1.67 KB
/
cookieToSession.test.js
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
/* eslint-disable */
jest.mock('./logger')
// user db stub
const SessionStub = {
session: { session: "session" },
findOne: function (properties, cb) {
if (this.succeed)
cb(null, this.session)
else
cb("error", null)
},
succeed: true,
}
// require module
let m = null
beforeAll(() => {
m = require('./cookieToSession')(SessionStub)
return m
})
test('sends 401 for no session cookie found', done => {
const req = { }
const res = {
status: function (code) {
expect(code).toBe(401)
done()
return this
},
send: function () {
return this
}
}
const next = function () { }
m(req, res, next)
})
test('returns session for valid sessionID - found in db', done => {
const req = {
signedCookies: {
'connect.sid': 'sessionID'
}
}
const res = {}
const next = function () {
expect(req.session).toBe(SessionStub.session.session)
done()
}
SessionStub.succeed = true
m(req, res, next)
})
test('returns session=null for valid sessionID - found in db, no session', done => {
const req = {
signedCookies: {
'connect.sid': 'sessionID'
}
}
const res = {}
const next = function () {
expect(req.session).toBe(null)
done()
}
SessionStub.session = { session: null }
SessionStub.succeed = true
m(req, res, next)
})
test('returns session=null for invalid sessionID - not found in db', done => {
const req = {
signedCookies: {
'connect.sid': 'sessionID'
}
}
const res = {}
const next = function () {
expect(req.session).toBe(null)
done()
}
SessionStub.session = { session: "session" }
SessionStub.succeed = false
m(req, res, next)
})