refactor(api): enhance logic

This commit is contained in:
yassinedorbozgithub 2025-06-18 14:08:48 +01:00
parent 369ef033a2
commit b7576c04e9
8 changed files with 10 additions and 11 deletions

View File

@ -54,7 +54,7 @@ describe('AttachmentController', () => {
beforeAll(async () => {
const { getMocks, resolveMocks } = await buildTestingMocks({
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [AttachmentController],
imports: [
rootMongooseTestModule(async () => {

View File

@ -38,7 +38,7 @@ describe('LabelController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [LabelController],
imports: [rootMongooseTestModule(installSubscriberFixtures)],
providers: [SubscriberService],

View File

@ -41,7 +41,7 @@ describe('MessageController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [MessageController],
imports: [rootMongooseTestModule(installMessageFixtures)],
providers: [UserService],

View File

@ -39,7 +39,7 @@ describe('SubscriberController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [SubscriberController],
imports: [rootMongooseTestModule(installSubscriberFixtures)],
providers: [LabelService, UserService],

View File

@ -45,7 +45,7 @@ describe('AuthController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
models: ['PermissionModel'],
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [LocalAuthController],
imports: [
rootMongooseTestModule(async () => {

View File

@ -30,7 +30,7 @@ describe('ModelController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
models: ['PermissionModel'],
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [ModelController],
imports: [rootMongooseTestModule(installModelFixtures)],
providers: [PermissionService],

View File

@ -37,7 +37,7 @@ describe('RoleController', () => {
beforeAll(async () => {
const { getMocks } = await buildTestingMocks({
models: ['InvitationModel'],
autoInjectFrom: ['all'],
autoInjectFrom: ['controllers', 'providers'],
controllers: [RoleController],
imports: [rootMongooseTestModule(installPermissionFixtures)],
providers: [PermissionService],

View File

@ -36,7 +36,7 @@ type buildTestingMocksProps<
| {
providers: NonNullable<P>;
controllers: NonNullable<C>;
autoInjectFrom: 'all'[];
autoInjectFrom: ('providers' | 'controllers')[];
}
| {
providers: NonNullable<P>;
@ -171,17 +171,16 @@ export const buildTestingMocks = async ({
}: buildTestingMocksProps) => {
const nestedProviders = new Set<Provider>();
const injectionFrom = autoInjectFrom as ToUnionArray<typeof autoInjectFrom>;
const canAutoInjectFromAll = injectionFrom?.includes('all');
const canAutoInjectFromProviders = injectionFrom?.includes('providers');
const canAutoInjectFromControllers = injectionFrom?.includes('controllers');
if (canAutoInjectFromAll || canAutoInjectFromProviders) {
if (canAutoInjectFromProviders) {
[...providers, ...getNestedDependencies(providers)].forEach((provider) =>
nestedProviders.add(provider),
);
}
if (canAutoInjectFromAll || canAutoInjectFromControllers) {
if (canAutoInjectFromControllers) {
[...getNestedDependencies(controllers)].forEach((controller) =>
nestedProviders.add(controller),
);