X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=inline;f=test%2Flib%2Fauthenticator.js;h=75ae9a883547ba055f341a480104959d7fa50b7d;hb=ff66dd49a1b54935a20ea6e15bd036b8acd5e170;hp=71420810f3e878edc841c7c243976fc19e24b677;hpb=9c8e775e5ab96a1788f535760bfa72205c430d15;p=squeep-authentication-module diff --git a/test/lib/authenticator.js b/test/lib/authenticator.js index 7142081..75ae9a8 100644 --- a/test/lib/authenticator.js +++ b/test/lib/authenticator.js @@ -3,7 +3,7 @@ /* eslint-disable jsdoc/require-jsdoc */ 'use strict'; -const assert = require('assert'); +const assert = require('node:assert'); const sinon = require('sinon'); const Authenticator = require('../../lib/authenticator'); const stubLogger = require('../stub-logger'); @@ -140,13 +140,14 @@ describe('Authenticator', function () { }); // _validateAuthDataCredential describe('isValidBasic', function () { + const b64 = (x) => Buffer.from(x).toString('base64'); it('succeeds', async function () { _authMechanismRequired(authenticator, 'argon2'); authenticator.db.authenticationGet.resolves({ identifier, credential, }); - const authString = `${identifier}:${password}`; + const authString = b64(`${identifier}:${password}`); const result = await authenticator.isValidBasic(authString, ctx); assert.strictEqual(result, true); assert.strictEqual(ctx.authenticationId, identifier); @@ -157,14 +158,14 @@ describe('Authenticator', function () { identifier, credential, }); - const authString = `${identifier}:wrongPassword}`; + const authString = b64(`${identifier}:wrongPassword}`); const result = await authenticator.isValidBasic(authString, ctx); assert.strictEqual(result, false); assert.strictEqual(ctx.authenticationId, undefined); }); it('covers no entry', async function() { authenticator.db.authenticationGet.resolves(); - const authString = `${identifier}:wrongPassword}`; + const authString = b64(`${identifier}:wrongPassword}`); const result = await authenticator.isValidBasic(authString, ctx); assert.strictEqual(result, false); assert.strictEqual(ctx.authenticationId, undefined); @@ -174,7 +175,7 @@ describe('Authenticator', function () { identifier, credential: '$other$kind_of_credential', }); - const authString = `${identifier}:wrongPassword}`; + const authString = b64(`${identifier}:wrongPassword}`); const result = await authenticator.isValidBasic(authString, ctx); assert.strictEqual(result, false); assert.strictEqual(ctx.authenticationId, undefined); @@ -577,7 +578,7 @@ describe('Authenticator', function () { it('covers missing basic auth, ignores session', async function () { req.getHeader.returns(); sinon.stub(authenticator, 'isValidAuthorization').resolves(true); - assert.rejects(authenticator.apiRequiredLocal(req, res, ctx, false), { + assert.rejects(() => authenticator.apiRequiredLocal(req, res, ctx, false), { name: 'ResponseError', statusCode: 401, }); @@ -585,6 +586,11 @@ describe('Authenticator', function () { assert(!authenticator.isValidAuthorization.called); assert(res.setHeader.called); }); + it('covers errors', async function () { + sinon.stub(authenticator, 'isValidAuthorization').rejects(); + req.getHeader.returns('Basic Zm9vOmJhcg=='); + assert.rejects(() => authenticator.apiRequiredLocal(req, res, ctx)); + }); }); // apiRequiredLocal }); // Authenticator