var replies = require('../src/lib/replies'); var assert = require('assert'); var sinon = require('sinon'); var sinonPromise = require('sinon-promise'); sinonPromise(sinon); var autoResolving = sinon.promise().resolves(); function create_res_mock() { var status_mock = sinon.mock(); var send_mock = sinon.mock(); var set_mock = sinon.mock(); return { status: status_mock, send: send_mock, set: set_mock }; } describe('test jwt', function() { it('should authenticate with success', function() { var res_mock = create_res_mock(); var username = 'username'; replies.authentication_succeeded(res_mock, username); assert(res_mock.status.calledWith(200)); assert(res_mock.set.calledWith({'X-Remote-User': username })); }); it('should reply successfully when already authenticated', function() { var res_mock = create_res_mock(); var username = 'username'; replies.already_authenticated(res_mock, username); assert(res_mock.status.calledWith(204)); assert(res_mock.set.calledWith({'X-Remote-User': username })); }); it('should reply with failed authentication', function() { var res_mock = create_res_mock(); var username = 'username'; replies.authentication_failed(res_mock, username); assert(res_mock.status.calledWith(401)); }); });