Example: Integration Tests for a Module

In this chapter, find an example of writing an integration test for a module using moduleIntegrationTestRunner from Medusa's Testing Framework.

Write Integration Test for Module#

Consider a hello module with a HelloModuleService that has a getMessage method:

src/modules/hello/service.ts
1import { MedusaService } from "@medusajs/framework/utils"2import MyCustom from "./models/my-custom"3
4class HelloModuleService extends MedusaService({5  MyCustom,6}){7  getMessage(): string {8    return "Hello, World!"9  }10}11
12export default HelloModuleService

To create an integration test for the method, create the file src/modules/hello/__tests__/service.spec.ts with the following content:

src/modules/hello/__tests__/service.spec.ts
1import { moduleIntegrationTestRunner } from "@medusajs/test-utils"2import { HELLO_MODULE } from ".."3import HelloModuleService from "../service"4import MyCustom from "../models/my-custom"5
6moduleIntegrationTestRunner<HelloModuleService>({7  moduleName: HELLO_MODULE,8  moduleModels: [MyCustom],9  resolve: "./src/modules/hello",10  testSuite: ({ service }) => {11    describe("HelloModuleService", () => {12      it("says hello world", () => {13        const message = service.getMessage()14
15        expect(message).toEqual("Hello, World!")16      })17    })18  },19})

You use the moduleIntegrationTestRunner function to add tests for the hello module. You have one test that passes if the getMessage method returns the "Hello, World!" string.


Run Test#

Run the following command to run your module integration tests:

TipIf you don't have a test:modules script in package.json, refer to the Medusa Testing Tools chapter.

This runs your Medusa application and runs the tests available in any __tests__ directory under the src/modules directory.

Was this chapter helpful?
Edit this page
Ask Anything
FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break