update dependencies and devDependencies, fix lint issues
[websub-hub] / test / src / db / sqlite.js
index be6399445bcb01279ca2c2b9392c58cbf94e934c..8d25fc8dda85c3427559ca6a10e8203d1a1c8caf 100644 (file)
@@ -1,12 +1,8 @@
-/* eslint-disable sonarjs/no-identical-functions */
-/* eslint-env mocha */
-/* eslint-disable sonarjs/no-duplicate-string */
 'use strict';
 
 /* This provides implementation coverage, stubbing parts of better-sqlite3. */
 
-const assert = require('assert');
-// eslint-disable-next-line node/no-unpublished-require
+const assert = require('node:assert');
 const sinon = require('sinon');
 const DBStub = require('../../stub-db');
 const stubLogger = require('../../stub-logger');
@@ -237,7 +233,7 @@ describe('DatabaseSQLite', function () {
         contentFetchNextAttempt: now,
         contentUpdated: now,
         url: topic.url,
-      }
+      };
       const result = DB._topicDataToNative(topic);
       assert.deepStrictEqual(result, expected);
     });
@@ -460,7 +456,7 @@ describe('DatabaseSQLite', function () {
         assert.deepStrictEqual(e, expected);
       }
     });
-  });
+  }); // subscriptionDeleteExpired
 
   describe('subscriptionDeliveryClaim', function () {
     it('success', async function () {
@@ -881,7 +877,7 @@ describe('DatabaseSQLite', function () {
       const dbResult1 = {
         changes: 1,
         lastInsertRowid: undefined,
-      }
+      };
       const expected = {
         changes: 1,
         lastInsertRowid: undefined,
@@ -901,7 +897,7 @@ describe('DatabaseSQLite', function () {
       const dbResult1 = {
         changes: 1,
         lastInsertRowid: undefined,
-      }
+      };
       const expected = {
         changes: 1,
         lastInsertRowid: undefined,
@@ -921,7 +917,7 @@ describe('DatabaseSQLite', function () {
       const dbResult1 = {
         changes: 0,
         lastInsertRowid: undefined,
-      }
+      };
       sinon.stub(db.statement.topicAttempts, 'get').returns(dbGet);
       sinon.stub(db.statement.topicAttemptsIncrement, 'run').returns(dbResult0);
       sinon.stub(db.statement.topicContentFetchDone, 'run').returns(dbResult1);
@@ -941,7 +937,7 @@ describe('DatabaseSQLite', function () {
       const dbResult1 = {
         changes: 0,
         lastInsertRowid: undefined,
-      }
+      };
       sinon.stub(db.statement.topicAttempts, 'get').returns(dbGet);
       sinon.stub(db.statement.topicAttemptsIncrement, 'run').returns(dbResult0);
       sinon.stub(db.statement.topicContentFetchDone, 'run').returns(dbResult1);
@@ -1151,7 +1147,22 @@ describe('DatabaseSQLite', function () {
       }
       assert(db.statement.topicDeleteById.run.called);
     });
-  });
+  }); // topicPendingDelete
+
+  describe('topicPublishHistory', function () {
+    beforeEach(function () {
+      sinon.stub(db.statement.topicPublishHistory, 'all');
+    });
+    it('success', function () {
+      db.statement.topicPublishHistory.all.returns([
+        { daysAgo: 1, contentUpdates: 1 },
+        { daysAgo: 3, contentUpdates: 2 },
+      ]);
+      const result = db.topicPublishHistory(dbCtx, topicId, 7);
+      const expected = [0, 1, 0, 2, 0, 0, 0];
+      assert.deepStrictEqual(result, expected);
+    });
+  }); // topicPublishHistory
 
   describe('topicSet', function () {
     let data;
@@ -1519,7 +1530,7 @@ describe('DatabaseSQLite', function () {
       DB._verificationDataToEngine(data);
       assert.strictEqual(data.isPublisherValidated, 0);
     });
-  }) // _verificationDataToEngine
+  }); // _verificationDataToEngine
 
   describe('verificationInsert', function () {
     let verification;
@@ -1610,7 +1621,7 @@ describe('DatabaseSQLite', function () {
       const dbResult = {
         changes: 0,
         lastInsertRowid: undefined,
-      }
+      };
       sinon.stub(db.statement.verificationUpdate, 'run').returns(dbResult);
       try {
         await db.verificationUpdate(dbCtx, verificationId, data);
@@ -1635,7 +1646,7 @@ describe('DatabaseSQLite', function () {
       const dbResult = {
         changes: 1,
         lastInsertRowid: undefined,
-      }
+      };
       sinon.stub(db.statement.verificationValidate, 'run').returns(dbResult);
       await db.verificationValidated(dbCtx, verificationId);
     });
@@ -1643,7 +1654,7 @@ describe('DatabaseSQLite', function () {
       const dbResult = {
         changes: 0,
         lastInsertRowid: undefined,
-      }
+      };
       sinon.stub(db.statement.verificationValidate, 'run').returns(dbResult);
       try {
         await db.verificationValidated(dbCtx, verificationId);