update dependencies and devDependencies, related updates and minor fixes
[squeep-indie-auther] / test / src / service.js
index 7a5e349df4af710a90f2e18c9ee58eeebb008db3..31365794992b578cbb33b687ac9848d831fd1d6a 100644 (file)
@@ -7,19 +7,23 @@ const assert = require('assert');
 const sinon = require('sinon'); // eslint-disable-line node/no-unpublished-require
 const { AsyncLocalStorage } = require('node:async_hooks');
 
-const stubDb = require('../stub-db');
-const stubLogger = require('../stub-logger');
+const StubDb = require('../stub-db');
+const StubLogger = require('../stub-logger');
 const Service = require('../../src/service');
 const Config = require('../../config');
 
 
 describe('Service', function () {
-  let service, options, asyncLocalStorage;
+  let service, stubLogger, stubDb, options, asyncLocalStorage;
   let req, res, ctx;
 
   beforeEach(function () {
     asyncLocalStorage = new AsyncLocalStorage();
     options = new Config('test');
+    stubDb = new StubDb();
+    stubDb._reset();
+    stubLogger = new StubLogger();
+    stubLogger._reset();
     service = new Service(stubLogger, stubDb, options, asyncLocalStorage);
     sinon.stub(service.manager);
     sinon.stub(service.sessionManager);
@@ -187,21 +191,27 @@ describe('Service', function () {
   }); // handlerGetHealthcheck
 
   describe('handlerInternalServerError', function () {
+    let ServiceClass, DingusClass;
+    before(function () {
+      ServiceClass = Object.getPrototypeOf(service);
+      DingusClass = Object.getPrototypeOf(ServiceClass);
+    });
     it('covers no redirect', async function () {
-      sinon.stub(service.__proto__.__proto__, 'handlerInternalServerError');
+      sinon.stub(DingusClass, 'handlerInternalServerError');
       await service.handlerInternalServerError(req, res, ctx);
-      assert(service.__proto__.__proto__.handlerInternalServerError.called);
+      assert(DingusClass.handlerInternalServerError.called);
     });
     it('covers redirect', async function () {
-      sinon.stub(service.__proto__.__proto__, 'handlerInternalServerError');
+      sinon.stub(DingusClass, 'handlerInternalServerError');
       ctx.session = {
         redirectUri: new URL('https://client.example.com/app'),
         clientIdentifier: new URL('https://client.exmaple.com/'),
         state: '123456',
       };
       await service.handlerInternalServerError(req, res, ctx);
-      assert(!service.__proto__.__proto__.handlerInternalServerError.called);
-      assert(res.setHeader);
+      assert(!DingusClass.handlerInternalServerError.called);
+      assert(res.setHeader.called);
+      assert.strictEqual(res.statusCode, 302);
     });
   }); // handlerInternalServerError