1 | 'use strict'
|
2 |
|
3 | const test = require('ava').test
|
4 | const sinon = require('sinon')
|
5 | const fixtures = require('./fixtures/')
|
6 | const VerifyToken = require('../src/receiver/middleware/verify-token')
|
7 |
|
8 | test.cb('VerifyToken() no token option', t => {
|
9 | let mw = VerifyToken()
|
10 |
|
11 | mw(fixtures.getMockReq(), fixtures.getMockRes(), () => {
|
12 | t.pass()
|
13 | t.end()
|
14 | })
|
15 | })
|
16 |
|
17 | test('VerifyToken() token option no verify_token', t => {
|
18 | let mw = VerifyToken('beepboop')
|
19 | let res = fixtures.getMockRes()
|
20 |
|
21 | let statusStub = sinon.stub(res, 'status', () => { return res })
|
22 | let sendStub = sinon.stub(res, 'send')
|
23 |
|
24 | mw(fixtures.getMockReq(), res, () => {})
|
25 | t.true(statusStub.calledWith(403))
|
26 | t.true(sendStub.calledWith('Invalid verify token'))
|
27 | })
|
28 |
|
29 | test.cb('VerifyToken() token option matching verify_token', t => {
|
30 | let token = 'beepboop'
|
31 | let mw = VerifyToken(token)
|
32 | let req = fixtures.getMockReq({
|
33 | slapp: {
|
34 | meta: {
|
35 | verify_token: token
|
36 | }
|
37 | }
|
38 | })
|
39 | let res = fixtures.getMockRes()
|
40 |
|
41 | mw(req, res, () => {
|
42 | t.pass()
|
43 | t.end()
|
44 | })
|
45 | })
|
46 |
|
47 | test('VerifyToken() token option nonmatching verify_token', t => {
|
48 | let token = 'beepboop'
|
49 | let onError = sinon.stub()
|
50 | let mw = VerifyToken(token, onError)
|
51 | let req = fixtures.getMockReq({
|
52 | slapp: {
|
53 | meta: {
|
54 | verify_token: 'derp'
|
55 | }
|
56 | }
|
57 | })
|
58 | let res = fixtures.getMockRes()
|
59 |
|
60 | let statusStub = sinon.stub(res, 'status', () => { return res })
|
61 | let sendStub = sinon.stub(res, 'send')
|
62 |
|
63 | mw(req, res, () => {})
|
64 | t.true(statusStub.calledWith(403))
|
65 | t.true(sendStub.calledWith('Invalid verify token'))
|
66 | t.true(onError.calledWith('Invalid verify token'))
|
67 | })
|