});
describe('Authentication', function () {
- let identifier, credential;
+ let identifier, credential, otpKey;
beforeEach(function () {
identifier = 'username';
credential = 'myEncryptedPassword';
+ otpKey = '1234567890123456789012';
});
- step('create auth entry', async function() {
+ step('create auth entry', async function () {
await db.context(async (dbCtx) => {
await db.authenticationUpsert(dbCtx, identifier, credential);
});
});
- step('get auth entry', async function() {
+ step('get auth entry', async function () {
await db.context(async (dbCtx) => {
const authInfo = await db.authenticationGet(dbCtx, identifier);
assert.strictEqual(authInfo.credential, credential);
});
});
- step('valid auth event', async function() {
+ step('valid auth event', async function () {
await db.context(async (dbCtx) => {
await db.authenticationSuccess(dbCtx, identifier);
const authInfo = await db.authenticationGet(dbCtx, identifier);
assert.notStrictEqual(authInfo.lastAuthentication, undefined);
});
});
- step('update auth entry', async function() {
+ step('update auth entry', async function () {
await db.context(async (dbCtx) => {
credential = 'myNewPassword';
- await db.authenticationUpsert(dbCtx, identifier, credential);
+ await db.authenticationUpsert(dbCtx, identifier, credential, otpKey);
+ const authInfo = await db.authenticationGet(dbCtx, identifier);
+ assert.strictEqual(authInfo.credential, credential);
+ assert.strictEqual(authInfo.otpKey, otpKey);
+ });
+ });
+ step('update auth otp key', async function () {
+ await db.context(async (dbCtx) => {
+ const removedOTPKey = null;
+ await db.authenticationUpdateOTPKey(dbCtx, identifier, removedOTPKey);
+ const authInfo = await db.authenticationGet(dbCtx, identifier);
+ assert.strictEqual(authInfo.otpKey, removedOTPKey);
+ });
+ });
+ step('update credential', async function () {
+ await db.context(async (dbCtx) => {
+ credential = '$plain$anotherCredential';
+ await db.authenticationUpdateCredential(dbCtx, identifier, credential);
const authInfo = await db.authenticationGet(dbCtx, identifier);
assert.strictEqual(authInfo.credential, credential);
});