Unit testing in nest js

Viewed 111

I am having an error that cannot read property find of undefined when I am trying to pass a mongoose model(UserGroup.name) when writing a unit test case for a service.

service.spec.ts
const module: TestingModule = await Test.createTestingModule({

      providers: [
        { provide: getModelToken(User.name), useValue: Model },
        { provide: getModelToken(UserGroup.name), useValue: { find: jest.fn(() => userGroupResp) } },
        { provide: getModelToken(UserCredential.name), useValue: Model },
        { provide: getModelToken(ActivityLog.name), useValue: Model },
        LoggerService,
        I18nRequestScopeService,
        { provide: I18nService, useValue: option },
        productServiceProvider,
        UserMongoService,

      ],
    }).compile();

service.ts
  constructor(
    @InjectModel("User") private readonly userModel: Model<IUser>,
    @InjectModel(UserGroup.name) private readonly userGroupModel: Model<IUserGroup>,
    @InjectModel("UserCredential") private readonly userCredentialModel: Model<any>,
    @InjectModel("ActivityLog") private readonly activityLogModel: Model<any>,
    private readonly logger: LoggerService,
    private readonly i18n: I18nRequestScopeService,
    private productMongoService: ProductMongoService
  ) { }

async getUserGroups()
{
 userGroups = await this.userGroupModel.find(  // having undefined error at this line.
          {
            productId: currentProduct,
          },
        );

}

the error is only while testing otherwise it is working fine.

0 Answers
Related