X-Git-Url: http://git.squeep.com/?p=squeep-indie-auther;a=blobdiff_plain;f=test%2Fsrc%2Fservice.js;fp=test%2Fsrc%2Fservice.js;h=7a5e349df4af710a90f2e18c9ee58eeebb008db3;hp=48f0c0bfd5311c5fc92337a67a66f2bfccd3fbce;hb=8ed17e3fb2fe838398036aef5b2a9398fd608375;hpb=77c93a5594f97910b501c4711b18d64c73cb3d94 diff --git a/test/src/service.js b/test/src/service.js index 48f0c0b..7a5e349 100644 --- a/test/src/service.js +++ b/test/src/service.js @@ -5,6 +5,7 @@ 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'); @@ -13,12 +14,13 @@ const Config = require('../../config'); describe('Service', function () { - let service, options; + let service, options, asyncLocalStorage; let req, res, ctx; beforeEach(function () { + asyncLocalStorage = new AsyncLocalStorage(); options = new Config('test'); - service = new Service(stubLogger, stubDb, options); + service = new Service(stubLogger, stubDb, options, asyncLocalStorage); sinon.stub(service.manager); sinon.stub(service.sessionManager); sinon.stub(service.authenticator); @@ -66,11 +68,15 @@ describe('Service', function () { }); }); // initialize - describe('preHandler', function () { + describe('preHandler', async function () { it('persists url into context', async function () { req.url = 'https://example.com/foo'; sinon.stub(service.__proto__.__proto__, 'preHandler').resolves(); - await service.preHandler(req, res, ctx); + await service.asyncLocalStorage.run({}, async () => { + await service.preHandler(req, res, ctx); + const logObject = service.asyncLocalStorage.getStore(); + assert('requestId' in logObject); + }); assert.strictEqual(ctx.url, req.url); }); }); // preHandler