Skip to content

fix(uploads): uploads.controller.contenttype test fails in downstream projects — logger mock missing #3736

@PierreBrisorgueil

Description

@PierreBrisorgueil

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

  1. Clone a downstream project using Node devkit
  2. Run NODE_ENV=<project> npx jest uploads.controller.contenttype.unit
  3. 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() },
}));

Metadata

Metadata

Assignees

No one assigned

    Labels

    FixA bug fix

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions