From a3908505ffd01575419922ffb33d0b5f87b2e83f Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Mon, 16 Jun 2025 08:26:57 +0100 Subject: [PATCH] feat(api): add automatic DI to setting module --- .../controllers/setting.controller.spec.ts | 24 +++---------------- .../repositories/setting.repository.spec.ts | 10 ++++---- .../setting/services/setting.service.spec.ts | 22 +++-------------- 3 files changed, 10 insertions(+), 46 deletions(-) diff --git a/api/src/setting/controllers/setting.controller.spec.ts b/api/src/setting/controllers/setting.controller.spec.ts index afd5dc78..89513703 100644 --- a/api/src/setting/controllers/setting.controller.spec.ts +++ b/api/src/setting/controllers/setting.controller.spec.ts @@ -6,9 +6,6 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { MongooseModule } from '@nestjs/mongoose'; - import { I18nService } from '@/i18n/services/i18n.service'; import { installSettingFixtures, @@ -20,9 +17,7 @@ import { } from '@/utils/test/test'; import { buildTestingMocks } from '@/utils/test/utils'; -import { SettingRepository } from '../repositories/setting.repository'; -import { Setting, SettingModel } from '../schemas/setting.schema'; -import { SettingSeeder } from '../seeds/setting.seed'; +import { Setting } from '../schemas/setting.schema'; import { SettingService } from '../services/setting.service'; import { SettingController } from './setting.controller'; @@ -33,29 +28,16 @@ describe('SettingController', () => { beforeAll(async () => { const { getMocks } = await buildTestingMocks({ + autoInjectFrom: ['controllers'], controllers: [SettingController], - imports: [ - rootMongooseTestModule(installSettingFixtures), - MongooseModule.forFeature([SettingModel]), - ], + imports: [rootMongooseTestModule(installSettingFixtures)], providers: [ - SettingService, - SettingRepository, - SettingSeeder, { provide: I18nService, useValue: { t: jest.fn().mockImplementation((t) => t), }, }, - { - provide: CACHE_MANAGER, - useValue: { - del: jest.fn(), - get: jest.fn(), - set: jest.fn(), - }, - }, ], }); [settingController, settingService] = await getMocks([ diff --git a/api/src/setting/repositories/setting.repository.spec.ts b/api/src/setting/repositories/setting.repository.spec.ts index c21002ea..8c080372 100644 --- a/api/src/setting/repositories/setting.repository.spec.ts +++ b/api/src/setting/repositories/setting.repository.spec.ts @@ -6,7 +6,7 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { getModelToken, MongooseModule } from '@nestjs/mongoose'; +import { getModelToken } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { installSettingFixtures } from '@/utils/test/fixtures/setting'; @@ -16,7 +16,7 @@ import { } from '@/utils/test/test'; import { buildTestingMocks } from '@/utils/test/utils'; -import { Setting, SettingModel } from '../schemas/setting.schema'; +import { Setting } from '../schemas/setting.schema'; import { SettingType } from '../schemas/types'; import { SettingRepository } from './setting.repository'; @@ -27,10 +27,8 @@ describe('SettingRepository', () => { beforeAll(async () => { const { getMocks } = await buildTestingMocks({ - imports: [ - rootMongooseTestModule(installSettingFixtures), - MongooseModule.forFeature([SettingModel]), - ], + autoInjectFrom: ['providers'], + imports: [rootMongooseTestModule(installSettingFixtures)], providers: [SettingRepository], }); [settingRepository, settingModel] = await getMocks([ diff --git a/api/src/setting/services/setting.service.spec.ts b/api/src/setting/services/setting.service.spec.ts index 8bc5b4cf..daaf0a41 100644 --- a/api/src/setting/services/setting.service.spec.ts +++ b/api/src/setting/services/setting.service.spec.ts @@ -6,9 +6,6 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { MongooseModule } from '@nestjs/mongoose'; - import { I18nService } from '@/i18n/services/i18n.service'; import { installSettingFixtures, @@ -21,9 +18,8 @@ import { import { buildTestingMocks } from '@/utils/test/utils'; import { SettingRepository } from '../repositories/setting.repository'; -import { Setting, SettingModel } from '../schemas/setting.schema'; +import { Setting } from '../schemas/setting.schema'; import { SettingType } from '../schemas/types'; -import { SettingSeeder } from '../seeds/setting.seed'; import { SettingService } from './setting.service'; @@ -39,28 +35,16 @@ describe('SettingService', () => { beforeAll(async () => { const { getMocks } = await buildTestingMocks({ - imports: [ - rootMongooseTestModule(installSettingFixtures), - MongooseModule.forFeature([SettingModel]), - ], + autoInjectFrom: ['providers'], + imports: [rootMongooseTestModule(installSettingFixtures)], providers: [ SettingService, - SettingRepository, - SettingSeeder, { provide: I18nService, useValue: { t: jest.fn().mockImplementation((t) => t), }, }, - { - provide: CACHE_MANAGER, - useValue: { - del: jest.fn(), - get: jest.fn(), - set: jest.fn(), - }, - }, ], }); [settingService, settingRepository] = await getMocks([