Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backend] (Nest.js) Explore using ModuleRef to avoid re-declaring providers and controllers in tests #885

Open
prestonlimlianjie opened this issue Sep 2, 2021 · 0 comments

Comments

@prestonlimlianjie
Copy link
Contributor

prestonlimlianjie commented Sep 2, 2021

As proposed by @lamkeewei in #823 (comment)

Currently, we have to define the Sequelize model in the Module declaration with two different ways - following the Nest.js docs. It could get confusing because it's not entirely clear why they need to be defined as such.

Application code

// auth.module.ts

@Module({
  imports: [ConfigModule, SequelizeModule.forFeature([User])],
  controllers: [AuthController],
  providers: [AuthService],
})

Test code

// auth.controller.spec.ts
const module: TestingModule = await Test.createTestingModule({
      imports: [ConfigModule],
      controllers: [AuthController],
      providers: [
        AuthService,
        {
          provide: getModelToken(User),
          useValue: mockModel,
        },
      ],
    }).compile()

Solution

Explore using ModuleRef in more detail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant