fix(api): enhance logic

This commit is contained in:
yassinedorbozgithub 2025-06-19 06:50:28 +01:00
parent 6f0668c9f1
commit 200c256abd

View File

@ -195,6 +195,19 @@ const getModels = (models: TModel[]): ModelDefinition[] =>
typeof model === 'string' ? getModel(model, 'Model') : model, typeof model === 'string' ? getModel(model, 'Model') : model,
); );
const defaultProviders = [
LoggerService,
EventEmitter2,
{
provide: CACHE_MANAGER,
useValue: {
del: jest.fn(),
set: jest.fn(),
get: jest.fn(),
},
},
];
export const buildTestingMocks = async ({ export const buildTestingMocks = async ({
models = [], models = [],
imports = [], imports = [],
@ -204,6 +217,7 @@ export const buildTestingMocks = async ({
...rest ...rest
}: buildTestingMocksProps) => { }: buildTestingMocksProps) => {
const extendedProviders = new Set<Provider>(); const extendedProviders = new Set<Provider>();
const dynamicProviders = new Set<Provider>();
const injectionFrom = autoInjectFrom as ToUnionArray<typeof autoInjectFrom>; const injectionFrom = autoInjectFrom as ToUnionArray<typeof autoInjectFrom>;
if (injectionFrom?.includes('providers')) { if (injectionFrom?.includes('providers')) {
@ -219,6 +233,9 @@ export const buildTestingMocks = async ({
} }
providers.forEach((provider) => extendedProviders.add(provider)); providers.forEach((provider) => extendedProviders.add(provider));
[...defaultProviders, ...extendedProviders].forEach((provider) => {
dynamicProviders.add(provider);
});
const module = await Test.createTestingModule({ const module = await Test.createTestingModule({
imports: [ imports: [
@ -227,26 +244,14 @@ export const buildTestingMocks = async ({
MongooseModule.forFeature([ MongooseModule.forFeature([
...getModels(models), ...getModels(models),
...(autoInjectFrom ...(autoInjectFrom
? getNestedModels([...extendedProviders], 'Repository') ? getNestedModels([...dynamicProviders], 'Repository')
: []), : []),
]), ]),
] ]
: []), : []),
...imports, ...imports,
], ],
providers: [ providers: [...dynamicProviders],
LoggerService,
EventEmitter2,
{
provide: CACHE_MANAGER,
useValue: {
del: jest.fn(),
set: jest.fn(),
get: jest.fn(),
},
},
...extendedProviders,
],
controllers, controllers,
...rest, ...rest,
}).compile(); }).compile();