update dependencies, fixes to support new authentication features
[websub-hub] / test / src / db / integration.js
index 7eb7d91670295b0f4bafad18f15b2e8bb31e7f56..eed37e2c55f5070c4031f4c47d1a8491ace96588 100644 (file)
@@ -83,33 +83,51 @@ describe('Database Integration', function () {
       });
 
       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);
           });