fix: resolve Circular dependency in unit tests

This commit is contained in:
yassinedorbozgithub 2025-04-04 11:58:54 +01:00
parent ebd2a66bbd
commit a38824a23a
2 changed files with 12 additions and 6 deletions

View File

@ -18,6 +18,7 @@ import {
closeInMongodConnection, closeInMongodConnection,
rootMongooseTestModule, rootMongooseTestModule,
} from '@/utils/test/test'; } from '@/utils/test/test';
import { buildTestingMocks } from '@/utils/test/utils';
import { NlpValueCreateDto } from '../dto/nlp-value.dto'; import { NlpValueCreateDto } from '../dto/nlp-value.dto';
import { NlpEntityRepository } from '../repositories/nlp-entity.repository'; import { NlpEntityRepository } from '../repositories/nlp-entity.repository';

View File

@ -9,14 +9,20 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose'; import { InjectModel } from '@nestjs/mongoose';
import { plainToClass } from 'class-transformer'; import { plainToClass } from 'class-transformer';
import { Document, Model, PipelineStage, Query, Types } from 'mongoose'; import mongoose, {
Document,
Model,
PipelineStage,
Query,
Types,
} from 'mongoose';
import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository';
import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto';
import { TFilterQuery } from '@/utils/types/filter.types'; import { TFilterQuery } from '@/utils/types/filter.types';
import { NlpValueDto } from '../dto/nlp-value.dto'; import { NlpValueDto } from '../dto/nlp-value.dto';
import { NlpEntity } from '../schemas/nlp-entity.schema'; import { NlpEntity, NlpEntityModel } from '../schemas/nlp-entity.schema';
import { import {
NLP_VALUE_POPULATE, NLP_VALUE_POPULATE,
NlpValue, NlpValue,
@ -28,7 +34,6 @@ import {
TNlpValueCountFormat, TNlpValueCountFormat,
} from '../schemas/nlp-value.schema'; } from '../schemas/nlp-value.schema';
import { NlpEntityRepository } from './nlp-entity.repository';
import { NlpSampleEntityRepository } from './nlp-sample-entity.repository'; import { NlpSampleEntityRepository } from './nlp-sample-entity.repository';
@Injectable() @Injectable()
@ -41,8 +46,6 @@ export class NlpValueRepository extends BaseRepository<
constructor( constructor(
@InjectModel(NlpValue.name) readonly model: Model<NlpValue>, @InjectModel(NlpValue.name) readonly model: Model<NlpValue>,
private readonly nlpSampleEntityRepository: NlpSampleEntityRepository, private readonly nlpSampleEntityRepository: NlpSampleEntityRepository,
@Inject(forwardRef(() => NlpEntityRepository))
private readonly nlpEntityRepository: NlpEntityRepository,
) { ) {
super(model, NlpValue, NLP_VALUE_POPULATE, NlpValueFull); super(model, NlpValue, NLP_VALUE_POPULATE, NlpValueFull);
} }
@ -216,7 +219,9 @@ export class NlpValueRepository extends BaseRepository<
...rest, ...rest,
entity: plainToClass( entity: plainToClass(
NlpEntity, NlpEntity,
await this.nlpEntityRepository.findOne(entity), await mongoose
.model(NlpEntityModel.name, NlpEntityModel.schema)
.findById(entity),
{ {
excludePrefixes: ['_'], excludePrefixes: ['_'],
}, },