}); // sessionCheck
describe('apiRequiredLocal', function () {
- let req, res, ctx;
+ let req, res;
beforeEach(function () {
ctx = {};
req = {
sinon.stub(authenticator, 'sessionCheck').resolves(false);
sinon.stub(authenticator, 'isValidAuthorization').resolves(true);
const result = await authenticator.apiRequiredLocal(req, res, ctx);
- assert(authenticator.sessionCheck.called);
+ assert.strictEqual(result, true);
assert(authenticator.isValidAuthorization.called);
+ assert(!authenticator.sessionCheck.called);
+ });
+ it('covers invalid basic auth', async function () {
+ req.getHeader.returns('Basic Zm9vOmJhcg==');
+ sinon.stub(authenticator, 'sessionCheck').resolves(false);
+ sinon.stub(authenticator, 'isValidAuthorization').resolves(false);
+ try {
+ await authenticator.apiRequiredLocal(req, res, ctx);
+ assert.fail(noExpectedException);
+ } catch (e) {
+ assert.strictEqual(e.statusCode, 401);
+ assert(!authenticator.sessionCheck.called);
+ assert(authenticator.isValidAuthorization.called);
+ }
+ });
+ it('covers missing basic auth, valid session', async function () {
+ req.getHeader.returns();
+ sinon.stub(authenticator, 'sessionCheck').resolves(true);
+ sinon.stub(authenticator, 'isValidAuthorization').resolves(false);
+ const result = await authenticator.apiRequiredLocal(req, res, ctx);
assert.strictEqual(result, true);
+ assert(!authenticator.isValidAuthorization.called);
+ assert(authenticator.sessionCheck.called);
});
- it('requests basic auth when missing, ignores session', async function () {
+ it('covers missing basic auth, ignores session', async function () {
req.getHeader.returns();
sinon.stub(authenticator, 'isValidAuthorization').resolves(true);
try {
await authenticator.apiRequiredLocal(req, res, ctx, false);
assert.fail(noExpectedException);
} catch (e) {
- console.log(e);
assert.strictEqual(e.statusCode, 401);
assert(!authenticator.sessionCheck.called);
assert(!authenticator.isValidAuthorization.called);