Problem
The new unit test modules/uploads/tests/uploads.controller.contenttype.unit.tests.js (added in #3729/#3732) fails in downstream projects because uploads.controller.js imports lib/services/logger.js, which reads config.log.fileLogger at module init.
The test mocks config/index.js with { uploads: { sharp: { blur: 3 } } } only — no log property — causing:
TypeError: Cannot read properties of undefined (reading 'fileLogger')
at lib/services/logger.js:63
The test passes in the devkit because config/defaults/test.js sets up log.fileLogger defaults. Downstream projects using NODE_ENV=<project> resolve to project configs that may not have log.fileLogger defined, causing logger init to fail.
Affected file(s)
modules/uploads/tests/uploads.controller.contenttype.unit.tests.js
Steps to reproduce
- Clone a downstream project using Node devkit
- Run
NODE_ENV=<project> npx jest uploads.controller.contenttype.unit
- Observe
TypeError: Cannot read properties of undefined (reading 'fileLogger')
Fix
Add a logger mock in beforeEach before importing the controller:
jest.unstable_mockModule('../../../lib/services/logger.js', () => ({
default: { info: jest.fn(), warn: jest.fn(), error: jest.fn(), debug: jest.fn() },
}));
Problem
The new unit test
modules/uploads/tests/uploads.controller.contenttype.unit.tests.js(added in #3729/#3732) fails in downstream projects becauseuploads.controller.jsimportslib/services/logger.js, which readsconfig.log.fileLoggerat module init.The test mocks
config/index.jswith{ uploads: { sharp: { blur: 3 } } }only — nologproperty — causing:The test passes in the devkit because
config/defaults/test.jssets uplog.fileLoggerdefaults. Downstream projects usingNODE_ENV=<project>resolve to project configs that may not havelog.fileLoggerdefined, causing logger init to fail.Affected file(s)
modules/uploads/tests/uploads.controller.contenttype.unit.tests.jsSteps to reproduce
NODE_ENV=<project> npx jest uploads.controller.contenttype.unitTypeError: Cannot read properties of undefined (reading 'fileLogger')Fix
Add a logger mock in
beforeEachbefore importing the controller: