Skip to content

Commit 82936e9

Browse files
test(api): refactor unit tests services providers
1 parent e511f42 commit 82936e9

23 files changed

+111
-1207
lines changed

packages/api/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@
9090
"nest-commander": "^3.20.1",
9191
"nestjs-dynamic-providers": "^0.3.7",
9292
"nestjs-i18n": "^10.5.1",
93-
"nodemailer": "^7.0.9",
9493
"papaparse": "^5.5.3",
9594
"passport": "^0.7.0",
9695
"passport-anonymous": "^1.0.1",
@@ -124,7 +123,6 @@
124123
"@types/multer": "^2.0.0",
125124
"@types/node": "^20.3.1",
126125
"@types/node-fetch": "^2.6.13",
127-
"@types/nodemailer": "^6.4.14",
128126
"@types/papaparse": "^5.3.16",
129127
"@types/passport-anonymous": "^1.0.5",
130128
"@types/passport-jwt": "^4.0.1",

packages/api/src/chat/controllers/block.controller.spec.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@ import { SubscriberOrmEntity } from '@/chat/entities/subscriber.entity';
1717
import { ContentTypeOrmEntity } from '@/cms/entities/content-type.entity';
1818
import { ContentOrmEntity } from '@/cms/entities/content.entity';
1919
import { ContentService } from '@/cms/services/content.service';
20-
import { I18nService } from '@/i18n/services/i18n.service';
2120
import { LanguageService } from '@/i18n/services/language.service';
2221
import { NlpEntityOrmEntity } from '@/nlp/entities/nlp-entity.entity';
2322
import { NlpSampleEntityOrmEntity } from '@/nlp/entities/nlp-sample-entity.entity';
2423
import { NlpSampleOrmEntity } from '@/nlp/entities/nlp-sample.entity';
2524
import { NlpValueOrmEntity } from '@/nlp/entities/nlp-value.entity';
2625
import { NlpService } from '@/nlp/services/nlp.service';
2726
import { PluginService } from '@/plugins/plugins.service';
28-
import { SettingService } from '@/setting/services/setting.service';
2927
import { ModelOrmEntity } from '@/user/entities/model.entity';
3028
import { PermissionOrmEntity } from '@/user/entities/permission.entity';
3129
import { RoleOrmEntity } from '@/user/entities/role.entity';
@@ -38,6 +36,7 @@ import {
3836
import { installCategoryFixturesTypeOrm } from '@/utils/test/fixtures/category';
3937
import { installLabelFixturesTypeOrm } from '@/utils/test/fixtures/label';
4038
import { installNlpSampleEntityFixturesTypeOrm } from '@/utils/test/fixtures/nlpsampleentity';
39+
import { I18nServiceProvider } from '@/utils/test/providers/i18n-service.provider';
4140
import { closeTypeOrmConnections } from '@/utils/test/test';
4241
import { buildTestingMocks } from '@/utils/test/utils';
4342

@@ -77,9 +76,6 @@ const userServiceMock = {
7776
const contentServiceMock = {};
7877
const languageServiceMock = {};
7978
const nlpServiceMock = {};
80-
const i18nServiceMock = {
81-
t: jest.fn().mockImplementation((translationKey: string) => translationKey),
82-
};
8379
const FIELDS_TO_POPULATE = [
8480
'trigger_labels',
8581
'assign_labels',
@@ -153,8 +149,7 @@ describe('BlockController (TypeORM)', () => {
153149
{ provide: ContentService, useValue: contentServiceMock },
154150
{ provide: LanguageService, useValue: languageServiceMock },
155151
{ provide: NlpService, useValue: nlpServiceMock },
156-
{ provide: SettingService, useValue: settingServiceMock },
157-
{ provide: I18nService, useValue: i18nServiceMock },
152+
I18nServiceProvider,
158153
],
159154
typeorm: {
160155
entities: [

packages/api/src/chat/repositories/block.repository.spec.ts

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { LabelGroupOrmEntity } from '@/chat/entities/label-group.entity';
2020
import { LabelOrmEntity } from '@/chat/entities/label.entity';
2121
import { SubscriberOrmEntity } from '@/chat/entities/subscriber.entity';
2222
import { SettingOrmEntity } from '@/setting/entities/setting.entity';
23-
import { SettingService } from '@/setting/services/setting.service';
2423
import { SettingType } from '@/setting/types';
2524
import { ModelOrmEntity } from '@/user/entities/model.entity';
2625
import { PermissionOrmEntity } from '@/user/entities/permission.entity';
@@ -57,20 +56,9 @@ describe('BlockRepository (TypeORM)', () => {
5756
const createdSettingIds: string[] = [];
5857

5958
beforeAll(async () => {
60-
const settingServiceMock = {
61-
getSettings: jest.fn().mockResolvedValue({
62-
chatbot_settings: {},
63-
}),
64-
};
6559
const testing = await buildTestingMocks({
6660
autoInjectFrom: ['providers'],
67-
providers: [
68-
BlockRepository,
69-
{
70-
provide: SettingService,
71-
useValue: settingServiceMock,
72-
},
73-
],
61+
providers: [BlockRepository],
7462
typeorm: {
7563
entities: [
7664
BlockOrmEntity,

packages/api/src/chat/services/bot.service.spec.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import WebChannelHandler from '@/extensions/channels/web/index.channel';
2222
import { WEB_CHANNEL_NAME } from '@/extensions/channels/web/settings';
2323
import WebEventWrapper from '@/extensions/channels/web/wrapper';
2424
import { HelperService } from '@/helper/helper.service';
25-
import { I18nService } from '@/i18n/services/i18n.service';
2625
import { NlpEntityOrmEntity } from '@/nlp/entities/nlp-entity.entity';
2726
import { NlpSampleEntityOrmEntity } from '@/nlp/entities/nlp-sample-entity.entity';
2827
import { NlpSampleOrmEntity } from '@/nlp/entities/nlp-sample.entity';
@@ -45,6 +44,7 @@ import {
4544
textBlock,
4645
} from '@/utils/test/mocks/block';
4746
import { conversationGetStarted } from '@/utils/test/mocks/conversation';
47+
import { I18nServiceProvider } from '@/utils/test/providers/i18n-service.provider';
4848
import { closeTypeOrmConnections } from '@/utils/test/test';
4949
import { buildTestingMocks } from '@/utils/test/utils';
5050

@@ -88,12 +88,7 @@ describe('BotService', () => {
8888
autoInjectFrom: ['providers'],
8989
providers: [
9090
BotService,
91-
{
92-
provide: I18nService,
93-
useValue: {
94-
t: jest.fn().mockImplementation((t) => t),
95-
},
96-
},
91+
I18nServiceProvider,
9792
{
9893
provide: HelperService,
9994
useValue: helperServiceMock,

packages/api/src/extensions/channels/web/__test__/index.spec.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ import { SubscriberService } from '@/chat/services/subscriber.service';
2727
import { OutgoingMessageFormat } from '@/chat/types/message';
2828
import { MenuOrmEntity } from '@/cms/entities/menu.entity';
2929
import { MenuService } from '@/cms/services/menu.service';
30-
import { I18nService } from '@/i18n/services/i18n.service';
3130
import { ModelOrmEntity } from '@/user/entities/model.entity';
3231
import { PermissionOrmEntity } from '@/user/entities/permission.entity';
3332
import { RoleOrmEntity } from '@/user/entities/role.entity';
3433
import { UserOrmEntity } from '@/user/entities/user.entity';
3534
import { installLabelGroupFixturesTypeOrm } from '@/utils/test/fixtures/label-group';
3635
import { installMessageFixturesTypeOrm } from '@/utils/test/fixtures/message';
36+
import { I18nServiceProvider } from '@/utils/test/providers/i18n-service.provider';
3737
import { closeTypeOrmConnections } from '@/utils/test/test';
3838
import { buildTestingMocks } from '@/utils/test/utils';
3939
import { SocketRequest } from '@/websocket/utils/socket-request';
@@ -77,12 +77,7 @@ describe('WebChannelHandler', () => {
7777
providers: [
7878
JwtService,
7979
WebChannelHandler,
80-
{
81-
provide: I18nService,
82-
useValue: {
83-
t: jest.fn().mockImplementation((t) => t),
84-
},
85-
},
80+
I18nServiceProvider,
8681
{
8782
provide: MenuService,
8883
useValue: menuServiceMock,

packages/api/src/extensions/channels/web/__test__/wrapper.spec.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ import { MessageService } from '@/chat/services/message.service';
1919
import { IncomingMessageType, StdEventType } from '@/chat/types/message';
2020
import { MenuOrmEntity } from '@/cms/entities/menu.entity';
2121
import { MenuService } from '@/cms/services/menu.service';
22-
import { I18nService } from '@/i18n/services/i18n.service';
2322
import { ModelOrmEntity } from '@/user/entities/model.entity';
2423
import { PermissionOrmEntity } from '@/user/entities/permission.entity';
2524
import { RoleOrmEntity } from '@/user/entities/role.entity';
2625
import { UserOrmEntity } from '@/user/entities/user.entity';
2726
import { installSubscriberFixturesTypeOrm } from '@/utils/test/fixtures/subscriber';
27+
import { I18nServiceProvider } from '@/utils/test/providers/i18n-service.provider';
2828
import { closeTypeOrmConnections } from '@/utils/test/test';
2929
import { buildTestingMocks } from '@/utils/test/utils';
3030
import { WebsocketGateway } from '@/websocket/websocket.gateway';
@@ -71,12 +71,7 @@ describe(`Web event wrapper`, () => {
7171
providers: [
7272
JwtService,
7373
WebChannelHandler,
74-
{
75-
provide: I18nService,
76-
useValue: {
77-
t: jest.fn().mockImplementation((t) => t),
78-
},
79-
},
74+
I18nServiceProvider,
8075
{
8176
provide: MenuService,
8277
useValue: menuServiceMock,

packages/api/src/i18n/controllers/translation.controller.spec.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { BlockRepository } from '@/chat/repositories/block.repository';
1111
import { ConversationRepository } from '@/chat/repositories/conversation.repository';
1212
import { BlockService } from '@/chat/services/block.service';
1313
import { PluginService } from '@/plugins/plugins.service';
14-
import { SettingService } from '@/setting/services/setting.service';
1514
import { NOT_FOUND_ID } from '@/utils/constants/mock';
1615
import { installLanguageFixturesTypeOrm } from '@/utils/test/fixtures/language';
1716
import {
@@ -26,7 +25,6 @@ import { LanguageOrmEntity } from '../entities/language.entity';
2625
import { TranslationOrmEntity } from '../entities/translation.entity';
2726
import { LanguageRepository } from '../repositories/language.repository';
2827
import { TranslationRepository } from '../repositories/translation.repository';
29-
import { I18nService } from '../services/i18n.service';
3028
import { LanguageService } from '../services/language.service';
3129
import { TranslationService } from '../services/translation.service';
3230

@@ -45,13 +43,6 @@ describe('TranslationController', () => {
4543
TranslationRepository,
4644
LanguageService,
4745
LanguageRepository,
48-
{
49-
provide: I18nService,
50-
useValue: {
51-
t: jest.fn().mockImplementation((t) => t),
52-
refreshDynamicTranslations: jest.fn(),
53-
},
54-
},
5546
{
5647
provide: BlockService,
5748
useValue: {
@@ -71,13 +62,6 @@ describe('TranslationController', () => {
7162
find: jest.fn(),
7263
},
7364
},
74-
{
75-
provide: SettingService,
76-
useValue: {
77-
find: jest.fn().mockResolvedValue([]),
78-
getSettings: jest.fn().mockResolvedValue({}),
79-
},
80-
},
8165
{
8266
provide: PluginService,
8367
useValue: {

packages/api/src/i18n/services/translation.service.spec.ts

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import { I18nService } from '@/i18n/services/i18n.service';
99
import { BasePlugin } from '@/plugins/base-plugin.service';
1010
import { PluginService } from '@/plugins/plugins.service';
1111
import { PluginBlockTemplate } from '@/plugins/types';
12-
import { SettingService } from '@/setting/services/setting.service';
1312
import { SettingType } from '@/setting/types';
13+
import { SettingServiceProvider } from '@/utils/test/providers/setting-service.provider';
1414
import { buildTestingMocks } from '@/utils/test/utils';
1515

1616
import { Block } from '../../chat/dto/block.dto';
@@ -63,40 +63,7 @@ describe('TranslationService', () => {
6363
]),
6464
},
6565
},
66-
{
67-
provide: SettingService,
68-
useValue: {
69-
getSettings: jest.fn().mockResolvedValue({
70-
chatbot_settings: {
71-
global_fallback: true,
72-
fallback_message: ['Global fallback message'],
73-
},
74-
}),
75-
find: jest
76-
.fn()
77-
.mockImplementation((criteria: { translatable?: boolean }) =>
78-
[
79-
{
80-
translatable: true,
81-
group: 'default',
82-
value: 'Global fallback message',
83-
label: 'fallback_message',
84-
type: SettingType.text,
85-
},
86-
].filter((s) =>
87-
criteria && 'translatable' in criteria
88-
? s.translatable === criteria.translatable
89-
: true,
90-
),
91-
),
92-
},
93-
},
94-
{
95-
provide: I18nService,
96-
useValue: {
97-
refreshDynamicTranslations: jest.fn(),
98-
},
99-
},
66+
SettingServiceProvider,
10067
],
10168
});
10269
[service, i18nService, pluginService] = await getMocks([

packages/api/src/nlp/repositories/nlp-entity.repository.spec.ts

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import { In } from 'typeorm';
1010

1111
import LlmNluHelper from '@/extensions/helpers/llm-nlu/index.helper';
1212
import { HelperService } from '@/helper/helper.service';
13-
import { SettingService } from '@/setting/services/setting.service';
1413
import { IGNORED_TEST_FIELDS } from '@/utils/test/constants';
1514
import { installNlpValueFixturesTypeOrm } from '@/utils/test/fixtures/nlpvalue';
15+
import { SettingServiceProvider } from '@/utils/test/providers/setting-service.provider';
1616
import { closeTypeOrmConnections } from '@/utils/test/test';
1717
import { buildTestingMocks } from '@/utils/test/utils';
1818

@@ -41,20 +41,7 @@ describe('NlpEntityRepository (TypeORM)', () => {
4141
beforeAll(async () => {
4242
const testing = await buildTestingMocks({
4343
autoInjectFrom: ['providers'],
44-
providers: [
45-
NlpService,
46-
LlmNluHelper,
47-
{
48-
provide: SettingService,
49-
useValue: {
50-
getSettings: jest.fn(() => ({
51-
chatbot_settings: {
52-
default_nlu_helper: 'llm-nlu-helper',
53-
},
54-
})),
55-
},
56-
},
57-
],
44+
providers: [NlpService, LlmNluHelper, SettingServiceProvider],
5845
typeorm: {
5946
entities: [
6047
NlpEntityOrmEntity,

packages/api/src/nlp/repositories/nlp-value.repository.spec.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import { TestingModule } from '@nestjs/testing';
1010
import LlmNluHelper from '@/extensions/helpers/llm-nlu/index.helper';
1111
import { HelperService } from '@/helper/helper.service';
1212
import { LanguageOrmEntity } from '@/i18n/entities/language.entity';
13-
import { SettingService } from '@/setting/services/setting.service';
1413
import { installNlpSampleEntityFixturesTypeOrm } from '@/utils/test/fixtures/nlpsampleentity';
14+
import { SettingServiceProvider } from '@/utils/test/providers/setting-service.provider';
1515
import { closeTypeOrmConnections } from '@/utils/test/test';
1616
import { buildTestingMocks } from '@/utils/test/utils';
1717
import { Format } from '@/utils/types/format.types';
@@ -49,16 +49,7 @@ describe('NlpValueRepository (TypeORM)', () => {
4949
NlpService,
5050
NlpValueService,
5151
LlmNluHelper,
52-
{
53-
provide: SettingService,
54-
useValue: {
55-
getSettings: jest.fn(() => ({
56-
chatbot_settings: {
57-
default_nlu_helper: 'llm-nlu-helper',
58-
},
59-
})),
60-
},
61-
},
52+
SettingServiceProvider,
6253
],
6354
typeorm: {
6455
entities: [

0 commit comments

Comments
 (0)