Nest.js не может разрешить зависимость модели Mongoose в модульном тесте - PullRequest
0 голосов
/ 23 декабря 2019

При написании модульного теста для контроллера Nest не может разрешить мою зависимость модели Mongoose:

Nest не может разрешить зависимости UsersService (?). Убедитесь, что аргумент USER_MODEL по индексу [0] доступен в контексте _RootTestModule.

Potential solutions:
- If USER_MODEL is a provider, is it part of the current _RootTestModule?
- If USER_MODEL is exported from a separate @Module, is that module imported within _RootTestModule?
  @Module({
    imports: [ /* the Module containing USER_MODEL */ ]
  })

Моя модель внедряется через конструктор моих служб в users.service.ts:

import { IUserModel } from './interfaces';
import { Model } from 'mongoose';
import { USER_MODEL } from './constants/users.constants';

@Injectable()
export class UsersService {

  constructor (
    @Inject(USER_MODEL)
    private readonly userModel: Model<IUserModel>,
  ) {}

  ...
}

и мой тест определяется как:

const mockUserModel = {};

describe('Users Controller', () => {
  let usersController: UsersController;
  let usersService: UsersService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      controllers: [UsersController],
      providers: [
        {
          provide: getModelToken(USER_MODEL),
          useValue: mockUserModel,
        },
        UsersService,
      ],
    }).compile();

    usersController = module.get<UsersController>(UsersController);
    usersService = module.get<UsersService>(UsersService);
  });

  it('should define user controller and service', () => {
    expect(usersController).toBeDefined();
    expect(usersService).toBeDefined();
  });
});

Все эти классы определены в одном модуле. Я не совсем уверен, что ищет Гнездо. Я следую руководству по адресу: https://docs.nestjs.com/fundamentals/testing и также рассмотрел несколько старых проблем с Github.

Я также попытался создать провайдера пользовательского класса, как определено здесь: https://docs.nestjs.com/fundamentals/custom-providers предоставить типизированную модель Mongoose, но с той же ошибкой.

Кто-нибудь может мне помочь?

...