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,
|
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();
|
||||||
|
Loading…
Reference in New Issue
Block a user