diff --git a/packages/parrot-core/__tests__/Parrot.spec.js b/packages/parrot-core/__tests__/Parrot.spec.js index eafcaae..b79b967 100644 --- a/packages/parrot-core/__tests__/Parrot.spec.js +++ b/packages/parrot-core/__tests__/Parrot.spec.js @@ -35,9 +35,10 @@ class ParrotTest extends Parrot { describe('Parrot', () => { it('normalizes scenarios and sets logger', () => { - new ParrotTest(); // eslint-disable-line no-new + const parrotTest = new ParrotTest(); expect(normalizeScenarios).toHaveBeenCalledWith({}); expect(logger.setScenario).toHaveBeenCalledWith(undefined); + expect(parrotTest.logger).toBe(logger); }); it('should get the active scenario name', () => { diff --git a/packages/parrot-core/src/Parrot.js b/packages/parrot-core/src/Parrot.js index 2ed0d5f..47bfc5a 100644 --- a/packages/parrot-core/src/Parrot.js +++ b/packages/parrot-core/src/Parrot.js @@ -19,6 +19,7 @@ class Parrot { this.scenarios = normalizeScenarios(scenarios); [this.activeScenario] = Object.keys(scenarios); logger.setScenario(this.activeScenario); + this.logger = logger; } getActiveScenario = () => this.activeScenario; diff --git a/packages/parrot-middleware/__tests__/ParrotMiddleware.spec.js b/packages/parrot-middleware/__tests__/ParrotMiddleware.spec.js index 0f6f8a7..9cc2edb 100644 --- a/packages/parrot-middleware/__tests__/ParrotMiddleware.spec.js +++ b/packages/parrot-middleware/__tests__/ParrotMiddleware.spec.js @@ -14,7 +14,15 @@ import ParrotMiddleware from '../src/ParrotMiddleware'; -jest.mock('parrot-core', () => class {}); +jest.mock( + 'parrot-core', + () => + class { + constructor() { + this.logger = { warn: jest.fn() }; + } + } +); describe('ParrotMiddleware', () => { it('should normalize', () => { @@ -27,13 +35,17 @@ describe('ParrotMiddleware', () => { }); }); - it('should call next middleware', () => { + it('should call next middleware and log a warning', () => { const req = {}; const res = { headersSent: false }; const next = jest.fn(); const parrotMiddleware = new ParrotMiddleware(); parrotMiddleware.resolver(req, res, next)(); expect(next).toHaveBeenCalled(); + expect(parrotMiddleware.logger.warn).toHaveBeenCalledWith( + 'No matching mock found for request', + req.path + ); }); it('should not call next middleware if headers sent', () => { diff --git a/packages/parrot-middleware/src/ParrotMiddleware.js b/packages/parrot-middleware/src/ParrotMiddleware.js index 3501987..f48096e 100644 --- a/packages/parrot-middleware/src/ParrotMiddleware.js +++ b/packages/parrot-middleware/src/ParrotMiddleware.js @@ -22,6 +22,7 @@ class ParrotMiddleware extends Parrot { return; } if (!response) { + this.logger.warn('No matching mock found for request', req.path); next(); return; }