Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

371
Visualizações
How to mock mongoose model constructor in nestjs

I have a nestjs service that uses mongoose. In a function I wish to test it creates a new model, but I could not find a way to mock that.

I have the following service

@Injectable()
export class ProjectService {

    constructor(
        @InjectModel("Project") private projectModel: Model<ProjectDocument>,
    ) {}

    public dto2ProjectModel(dto: ProjectDto) {
        return new this.projectModel({
            _id: dto.id? Types.ObjectId(dto.id) : Types.ObjectId(),
            name: dto.name.toUpperCase()
        });
    }
}

And I created the test following the documentation like so:

describe('ProjectService tests', () => {
    let projectService: ProjectService;

    beforeEach(async () => {
        const moduleRef = await Test.createTestingModule({
        providers: [
            ProjectService, 
            {
                provide: getModelToken("Project"),
                useValue: {
                    find: jest.fn(),
                    findById: jest.fn()
                }
            }
        ]
        }).compile();
        projectService = moduleRef.get<ProjectService>(ProjectService);
    });

    describe('dto2ProjectModel', () => {
        it('should return a project with the uppercase name', async () => {
            const projectDto: ProjectDto = new ProjectDto();
            projectDto.id = '5a2539b41c574006c46f1a09';
            projectDto.name = 'someName';
            expect(await projectService.dto2ProjectModel(projectDto).name).toEqual('SOMENAME');
        });
    });
});

I tried doing it by example on nestjs documentation and mocking model methods like find is fine, but the new this.projectModel({}) does not work.

Any ideas are greatly appreciated!

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda