diff --git a/packages/core/modules-sdk/src/loaders/__tests__/module-loader.ts b/packages/core/modules-sdk/src/loaders/__tests__/module-loader.ts index 8c8fa10282..198a3ca4ae 100644 --- a/packages/core/modules-sdk/src/loaders/__tests__/module-loader.ts +++ b/packages/core/modules-sdk/src/loaders/__tests__/module-loader.ts @@ -4,7 +4,6 @@ import { ModuleResolution, } from "@medusajs/types" import { createMedusaContainer } from "@medusajs/utils" -import { EOL } from "os" import { moduleLoader } from "../module-loader" const logger = { @@ -114,11 +113,9 @@ describe("modules loader", () => { }, } - await moduleLoader({ container, moduleResolutions, logger }) - - expect(logger.warn).toHaveBeenCalledWith( - `Could not resolve module: TestService. Error: Loaders for module TestService failed: loader${EOL}` - ) + expect( + moduleLoader({ container, moduleResolutions, logger }) + ).rejects.toThrow("Loaders for module TestService failed: loader") }) it("should log the errors if no service is defined", async () => { @@ -142,15 +139,14 @@ describe("modules loader", () => { }, } - await moduleLoader({ container, moduleResolutions, logger }) - - expect(logger.warn).toHaveBeenCalledWith( - `Could not resolve module: TestService. Error: No service found in module. Make sure your module exports a service.${EOL}` + expect( + moduleLoader({ container, moduleResolutions, logger }) + ).rejects.toThrow( + "No service found in module TestService. Make sure your module exports a service." ) }) it("should throw an error if no service is defined and the module is required", async () => { - expect.assertions(1) const moduleResolutions: Record = { testService: { resolutionPath: "@modules/no-service", @@ -172,13 +168,11 @@ describe("modules loader", () => { }, } - try { - await moduleLoader({ container, moduleResolutions, logger }) - } catch (err) { - expect(err.message).toEqual( - "No service found in module. Make sure your module exports a service." - ) - } + expect( + moduleLoader({ container, moduleResolutions, logger }) + ).rejects.toThrow( + "No service found in module TestService. Make sure your module exports a service." + ) }) it("should throw an error if the default package isn't found and the module is required", async () => { diff --git a/packages/core/modules-sdk/src/loaders/module-loader.ts b/packages/core/modules-sdk/src/loaders/module-loader.ts index 96ee81b8e7..e1a18c078c 100644 --- a/packages/core/modules-sdk/src/loaders/module-loader.ts +++ b/packages/core/modules-sdk/src/loaders/module-loader.ts @@ -33,16 +33,10 @@ export const moduleLoader = async ({ if (registrationResult?.error) { const { error } = registrationResult - if (resolution.definition.isRequired) { - logger?.error( - `Could not resolve required module: ${resolution.definition.label}. Error: ${error.message}${EOL}` - ) - throw error - } - - logger?.warn( + logger?.error( `Could not resolve module: ${resolution.definition.label}. Error: ${error.message}${EOL}` ) + throw error } } } diff --git a/packages/core/modules-sdk/src/loaders/utils/load-internal.ts b/packages/core/modules-sdk/src/loaders/utils/load-internal.ts index ce94162315..dc86118ada 100644 --- a/packages/core/modules-sdk/src/loaders/utils/load-internal.ts +++ b/packages/core/modules-sdk/src/loaders/utils/load-internal.ts @@ -15,9 +15,9 @@ import { ModulesSdkUtils, } from "@medusajs/utils" import { asFunction, asValue } from "awilix" -import { join, resolve } from "path" import { statSync } from "fs" import { readdir } from "fs/promises" +import { join, resolve } from "path" type ModuleResource = { services: Function[] @@ -90,7 +90,7 @@ export async function loadInternalModule( return { error: new Error( - "No service found in module. Make sure your module exports a service." + `No service found in module ${resolution?.definition?.label}. Make sure your module exports a service.` ), } }