tests/jwtMiddlewareTests.js   A
last analyzed

Complexity

Total Complexity 17
Complexity/F 1

Size

Lines of Code 90
Function Count 17

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 0
c 1
b 1
f 0
nc 1
dl 0
loc 90
ccs 44
cts 44
cp 1
crap 0
rs 10
wmc 17
mnd 0
bc 17
fnc 17
bpm 1
cpm 1
noi 1

2 Functions

Rating   Name   Duplication   Size   Complexity  
A jwtMiddlewareTests.js ➔ describe(ꞌtest routesꞌ) 0 47 1
A jwtMiddlewareTests.js ➔ describe(ꞌTest JWTꞌ) 0 23 1
1
"use strict";
2
3 1
var app      = require('./server');
4 1
var chai     = require('chai');
5 1
var chaiHttp = require('chai-http');
6 1
var expect   = chai.expect;
7
var server;
8
9 1
chai.use(chaiHttp);
10
11 1
const url  = "http://localhost:" + app.get('port')
0 ignored issues
show
Unused Code introduced by
The constant url seems to be never used. Consider removing it.
Loading history...
12 2
const port = process.env.PORT || '3030';
13
14 1
app.set('port', port);
15
16 1
var failedToAuth = { success: false, message: 'Failed to authenticate token.' };
17 1
var noToken      = { success: false, message: 'No token provided.' };
18
19 1
describe('test routes', function() {
20 1
    before(function() {
21 1
        server = app.listen(app.get('port'));
22
    })
23
24 1
    it('/ should return status 200', function (done) {
25 1
        chai.request(server)
26
        .get("/")
27
        .end(function (err, res) {
28 1
            expect(res).to.have.status(200);
29 1
            done();
30
        });
31
    });
32
33 1
    it('/gettoken should return status 200', function (done) {
34 1
        chai.request(server)
35
        .get('/getToken')
36
        .end(function (err, res) {
37 1
            expect(res).to.have.status(200);
38 1
            done();
39
        });
40
    });
41
42 1
    it('/test should return status 403', function (done) {
43 1
        chai.request(server)
44
        .get('/test')
45
        .end(function (err, res) {
46 1
            expect(res).to.have.status(403);
47 1
            expect(res.body).to.deep.equal(noToken)
48 1
            done();
49
        });
50
    });
51
52 1
    it('/test?token=1.1.1 should return status 403 and failedToAuth', function (done) {
53 1
        chai.request(server)
54
        .get('/test?token=1.1.1')
55
        .end(function (err, res) {
56 1
            expect(res).to.have.status(403);
57 1
            expect(res.body).to.deep.equal(failedToAuth)
58 1
            done();
59
        });
60
    });
61
62 1
    after(function () {
63 1
        server.close();
64
    });
65
})
66
67
68 1
describe('Test JWT', function () {
69 1
    before(function () {
70 1
        server = app.listen(app.get('port'));
71
    });
72
73 1
    it('statuscode 200 when using the created token', function (done) {
74 1
        chai.request(server)
75
        .get('/getToken')
76
        .end(function (err, res) {
77 1
            chai.request(server)
78
            .get('/test?token=' + res.body.token)
79
            .end(function (err, res) {
80 1
                expect(res).to.have.status(200);
81 1
                expect(res.body.username).to.equal('foo');
82 1
                done();
83
            });
84
        });
85
    });
86
87 1
    after(function () {
88 1
        server.close();
89
    });
90
});
91