mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix(api): enhance logic
This commit is contained in:
parent
6f0668c9f1
commit
200c256abd
@ -195,6 +195,19 @@ const getModels = (models: TModel[]): ModelDefinition[] =>
|
||||
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 ({
|
||||
models = [],
|
||||
imports = [],
|
||||
@ -204,6 +217,7 @@ export const buildTestingMocks = async ({
|
||||
...rest
|
||||
}: buildTestingMocksProps) => {
|
||||
const extendedProviders = new Set<Provider>();
|
||||
const dynamicProviders = new Set<Provider>();
|
||||
const injectionFrom = autoInjectFrom as ToUnionArray<typeof autoInjectFrom>;
|
||||
|
||||
if (injectionFrom?.includes('providers')) {
|
||||
@ -219,6 +233,9 @@ export const buildTestingMocks = async ({
|
||||
}
|
||||
|
||||
providers.forEach((provider) => extendedProviders.add(provider));
|
||||
[...defaultProviders, ...extendedProviders].forEach((provider) => {
|
||||
dynamicProviders.add(provider);
|
||||
});
|
||||
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [
|
||||
@ -227,26 +244,14 @@ export const buildTestingMocks = async ({
|
||||
MongooseModule.forFeature([
|
||||
...getModels(models),
|
||||
...(autoInjectFrom
|
||||
? getNestedModels([...extendedProviders], 'Repository')
|
||||
? getNestedModels([...dynamicProviders], 'Repository')
|
||||
: []),
|
||||
]),
|
||||
]
|
||||
: []),
|
||||
...imports,
|
||||
],
|
||||
providers: [
|
||||
LoggerService,
|
||||
EventEmitter2,
|
||||
{
|
||||
provide: CACHE_MANAGER,
|
||||
useValue: {
|
||||
del: jest.fn(),
|
||||
set: jest.fn(),
|
||||
get: jest.fn(),
|
||||
},
|
||||
},
|
||||
...extendedProviders,
|
||||
],
|
||||
providers: [...dynamicProviders],
|
||||
controllers,
|
||||
...rest,
|
||||
}).compile();
|
||||
|
Loading…
Reference in New Issue
Block a user