feat: add unit tests global provider config

This commit is contained in:
yassinedorbozgithub
2025-03-23 08:52:19 +01:00
parent e0a77302cc
commit ac770154f5
73 changed files with 809 additions and 909 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -11,11 +11,8 @@ import {
MethodNotAllowedException,
NotFoundException,
} from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { MongooseModule } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { LoggerService } from '@/logger/logger.service';
import { IGNORED_TEST_FIELDS } from '@/utils/test/constants';
import { nlpEntityFixtures } from '@/utils/test/fixtures/nlpentity';
import {
@@ -28,6 +25,7 @@ import {
rootMongooseTestModule,
} from '@/utils/test/test';
import { TFixtures } from '@/utils/test/types';
import { buildTestingMocks } from '@/utils/test/utils';
import { NlpEntityCreateDto } from '../dto/nlp-entity.dto';
import { NlpEntityRepository } from '../repositories/nlp-entity.repository';
@@ -53,7 +51,7 @@ describe('NlpEntityController', () => {
let buitInEntityId: string | null;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
const { getMocks } = await buildTestingMocks({
controllers: [NlpEntityController],
imports: [
rootMongooseTestModule(installNlpValueFixtures),
@@ -64,19 +62,18 @@ describe('NlpEntityController', () => {
]),
],
providers: [
LoggerService,
NlpEntityService,
NlpEntityRepository,
NlpValueService,
NlpSampleEntityRepository,
NlpValueRepository,
EventEmitter2,
],
}).compile();
nlpEntityController = module.get<NlpEntityController>(NlpEntityController);
nlpValueService = module.get<NlpValueService>(NlpValueService);
nlpEntityService = module.get<NlpEntityService>(NlpEntityService);
});
[nlpEntityController, nlpValueService, nlpEntityService] = await getMocks([
NlpEntityController,
NlpValueService,
NlpEntityService,
]);
intentEntityId =
(
await nlpEntityService.findOne({
@@ -90,9 +87,8 @@ describe('NlpEntityController', () => {
})
)?.id || null;
});
afterAll(async () => {
await closeInMongodConnection();
});
afterAll(closeInMongodConnection);
afterEach(jest.clearAllMocks);

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -8,16 +8,13 @@
import { CACHE_MANAGER } from '@nestjs/cache-manager';
import { BadRequestException, NotFoundException } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { MongooseModule } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { HelperService } from '@/helper/helper.service';
import { LanguageRepository } from '@/i18n/repositories/language.repository';
import { Language, LanguageModel } from '@/i18n/schemas/language.schema';
import { I18nService } from '@/i18n/services/i18n.service';
import { LanguageService } from '@/i18n/services/language.service';
import { LoggerService } from '@/logger/logger.service';
import { SettingRepository } from '@/setting/repositories/setting.repository';
import { SettingModel } from '@/setting/schemas/setting.schema';
import { SettingSeeder } from '@/setting/seeds/setting.seed';
@@ -32,6 +29,7 @@ import {
rootMongooseTestModule,
} from '@/utils/test/test';
import { TFixtures } from '@/utils/test/types';
import { buildTestingMocks } from '@/utils/test/utils';
import { NlpSampleDto } from '../dto/nlp-sample.dto';
import { NlpEntityRepository } from '../repositories/nlp-entity.repository';
@@ -65,7 +63,7 @@ describe('NlpSampleController', () => {
let languages: Language[];
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
const { getMocks } = await buildTestingMocks({
controllers: [NlpSampleController],
imports: [
rootMongooseTestModule(async () => {
@@ -82,7 +80,6 @@ describe('NlpSampleController', () => {
]),
],
providers: [
LoggerService,
NlpSampleRepository,
NlpSampleEntityRepository,
NlpEntityService,
@@ -93,7 +90,6 @@ describe('NlpSampleController', () => {
NlpSampleEntityService,
LanguageRepository,
LanguageService,
EventEmitter2,
HelperService,
SettingRepository,
SettingService,
@@ -113,26 +109,32 @@ describe('NlpSampleController', () => {
},
},
],
}).compile();
nlpSampleController = module.get<NlpSampleController>(NlpSampleController);
nlpSampleEntityService = module.get<NlpSampleEntityService>(
});
[
nlpSampleController,
nlpSampleEntityService,
nlpSampleService,
nlpEntityService,
nlpValueService,
languageService,
] = await getMocks([
NlpSampleController,
NlpSampleEntityService,
);
nlpSampleService = module.get<NlpSampleService>(NlpSampleService);
nlpEntityService = module.get<NlpEntityService>(NlpEntityService);
nlpValueService = module.get<NlpValueService>(NlpValueService);
NlpSampleService,
NlpEntityService,
NlpValueService,
LanguageService,
]);
byeJhonSampleId =
(
await nlpSampleService.findOne({
text: 'Bye Jhon',
})
)?.id || null;
languageService = module.get<LanguageService>(LanguageService);
languages = await languageService.findAll();
});
afterAll(async () => {
await closeInMongodConnection();
});
afterAll(closeInMongodConnection);
afterEach(jest.clearAllMocks);

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -7,11 +7,8 @@
*/
import { BadRequestException, NotFoundException } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { MongooseModule } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { LoggerService } from '@/logger/logger.service';
import { getUpdateOneError } from '@/utils/test/errors/messages';
import { nlpEntityFixtures } from '@/utils/test/fixtures/nlpentity';
import {
@@ -24,6 +21,7 @@ import {
rootMongooseTestModule,
} from '@/utils/test/test';
import { TFixtures } from '@/utils/test/types';
import { buildTestingMocks } from '@/utils/test/utils';
import { NlpValueCreateDto } from '../dto/nlp-value.dto';
import { NlpEntityRepository } from '../repositories/nlp-entity.repository';
@@ -50,7 +48,7 @@ describe('NlpValueController', () => {
let negativeValue: NlpValue | null;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
const { getMocks } = await buildTestingMocks({
controllers: [NlpValueController],
imports: [
rootMongooseTestModule(installNlpValueFixtures),
@@ -61,25 +59,24 @@ describe('NlpValueController', () => {
]),
],
providers: [
LoggerService,
NlpValueRepository,
NlpValueService,
NlpSampleEntityRepository,
NlpEntityService,
NlpEntityRepository,
EventEmitter2,
],
}).compile();
nlpValueController = module.get<NlpValueController>(NlpValueController);
nlpValueService = module.get<NlpValueService>(NlpValueService);
nlpEntityService = module.get<NlpEntityService>(NlpEntityService);
});
[nlpValueController, nlpValueService, nlpEntityService] = await getMocks([
NlpValueController,
NlpValueService,
NlpEntityService,
]);
jhonNlpValue = await nlpValueService.findOne({ value: 'jhon' });
positiveValue = await nlpValueService.findOne({ value: 'positive' });
negativeValue = await nlpValueService.findOne({ value: 'negative' });
});
afterAll(async () => {
await closeInMongodConnection();
});
afterAll(closeInMongodConnection);
afterEach(jest.clearAllMocks);