remove inline providers from unit tests
This commit is contained in:
parent
92892338f3
commit
a3e969625d
6 changed files with 33 additions and 76 deletions
|
|
@ -29,6 +29,7 @@ import { GlobalEventService } from '@/core/GlobalEventService.js';
|
|||
import { RecipientMethod } from '@/models/AbuseReportNotificationRecipient.js';
|
||||
import { SystemWebhookService } from '@/core/SystemWebhookService.js';
|
||||
import { UserEntityService } from '@/core/entities/UserEntityService.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
|
||||
process.env.NODE_ENV = 'test';
|
||||
|
||||
|
|
@ -114,39 +115,20 @@ describe('AbuseReportNotificationService', () => {
|
|||
.createTestingModule({
|
||||
imports: [
|
||||
GlobalModule,
|
||||
],
|
||||
providers: [
|
||||
AbuseReportNotificationService,
|
||||
IdService,
|
||||
{
|
||||
provide: RoleService, useFactory: () => ({ getModeratorIds: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: SystemWebhookService, useFactory: () => ({ enqueueSystemWebhook: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: UserEntityService, useFactory: () => ({
|
||||
pack: (v: any) => Promise.resolve(v),
|
||||
packMany: (v: any) => Promise.resolve(v),
|
||||
}),
|
||||
},
|
||||
{
|
||||
provide: EmailService, useFactory: () => ({ sendEmail: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: MetaService, useFactory: () => ({ fetch: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: ModerationLogService, useFactory: () => ({ log: () => Promise.resolve() }),
|
||||
},
|
||||
{
|
||||
provide: GlobalEventService, useFactory: () => ({ publishAdminStream: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: DI.meta, useFactory: () => meta,
|
||||
},
|
||||
CoreModule,
|
||||
],
|
||||
})
|
||||
.overrideProvider(RoleService).useValue({ getModeratorIds: jest.fn() })
|
||||
.overrideProvider(SystemWebhookService).useValue({ enqueueSystemWebhook: jest.fn() })
|
||||
.overrideProvider(UserEntityService).useValue({
|
||||
pack: (v: any) => Promise.resolve(v),
|
||||
packMany: (v: any) => Promise.resolve(v),
|
||||
})
|
||||
.overrideProvider(EmailService).useValue({ sendEmail: jest.fn() })
|
||||
.overrideProvider(MetaService).useValue({ fetch: jest.fn() })
|
||||
.overrideProvider(ModerationLogService).useValue({ log: () => Promise.resolve() })
|
||||
.overrideProvider(GlobalEventService).useValue({ publishAdminStream: jest.fn() })
|
||||
.overrideProvider(DI.meta).useValue(meta)
|
||||
.compile();
|
||||
|
||||
await app.init();
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@ import { Test, TestingModule } from '@nestjs/testing';
|
|||
import { Response } from 'node-fetch';
|
||||
import {
|
||||
CaptchaError,
|
||||
CaptchaErrorCode,
|
||||
captchaErrorCodes,
|
||||
CaptchaSaveResult,
|
||||
CaptchaService,
|
||||
} from '@/core/CaptchaService.js';
|
||||
|
|
@ -18,6 +16,8 @@ import { HttpRequestService } from '@/core/HttpRequestService.js';
|
|||
import { MetaService } from '@/core/MetaService.js';
|
||||
import { MiMeta } from '@/models/Meta.js';
|
||||
import { LoggerService } from '@/core/LoggerService.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
import { captchaErrorCodes, type CaptchaErrorCode } from '@/misc/captcha-error.js';
|
||||
|
||||
describe('CaptchaService', () => {
|
||||
let app: TestingModule;
|
||||
|
|
@ -29,21 +29,12 @@ describe('CaptchaService', () => {
|
|||
app = await Test.createTestingModule({
|
||||
imports: [
|
||||
GlobalModule,
|
||||
CoreModule,
|
||||
],
|
||||
providers: [
|
||||
CaptchaService,
|
||||
LoggerService,
|
||||
{
|
||||
provide: HttpRequestService, useFactory: () => ({ send: jest.fn() }),
|
||||
},
|
||||
{
|
||||
provide: MetaService, useFactory: () => ({
|
||||
fetch: jest.fn(),
|
||||
update: jest.fn(),
|
||||
}),
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
})
|
||||
.overrideProvider(HttpRequestService).useValue({ send: jest.fn() })
|
||||
.overrideProvider(MetaService).useValue({ fetch: jest.fn(), update: jest.fn() })
|
||||
.compile();
|
||||
|
||||
await app.init();
|
||||
app.enableShutdownHooks();
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
import { afterEach, beforeAll, describe, test } from '@jest/globals';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { DataSource } from 'typeorm';
|
||||
import { CustomEmojiService } from '@/core/CustomEmojiService.js';
|
||||
import { EmojiEntityService } from '@/core/entities/EmojiEntityService.js';
|
||||
import { GlobalEventService } from '@/core/GlobalEventService.js';
|
||||
|
|
@ -17,7 +18,6 @@ import { EmojisRepository } from '@/models/_.js';
|
|||
import { MiEmoji } from '@/models/Emoji.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
import { DriveService } from '@/core//DriveService.js';
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
describe('CustomEmojiService', () => {
|
||||
let app: TestingModule;
|
||||
|
|
@ -33,15 +33,6 @@ describe('CustomEmojiService', () => {
|
|||
GlobalModule,
|
||||
CoreModule,
|
||||
],
|
||||
providers: [
|
||||
CustomEmojiService,
|
||||
UtilityService,
|
||||
IdService,
|
||||
EmojiEntityService,
|
||||
ModerationLogService,
|
||||
GlobalEventService,
|
||||
DriveService,
|
||||
],
|
||||
})
|
||||
.compile();
|
||||
|
||||
|
|
@ -51,7 +42,7 @@ describe('CustomEmojiService', () => {
|
|||
service = app.get<CustomEmojiService>(CustomEmojiService);
|
||||
emojisRepository = app.get<EmojisRepository>(DI.emojisRepository);
|
||||
idService = app.get<IdService>(IdService);
|
||||
await app.get<DataSource>(DI.db).query("set session time zone 'UTC'");
|
||||
await app.get<DataSource>(DI.db).query('set session time zone \'UTC\'');
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import { FileInfo, FileInfoService } from '@/core/FileInfoService.js';
|
|||
//import { DI } from '@/di-symbols.js';
|
||||
import { LoggerService } from '@/core/LoggerService.js';
|
||||
import type { TestingModule } from '@nestjs/testing';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
import type { MockFunctionMetadata } from 'jest-mock';
|
||||
|
||||
const _filename = fileURLToPath(import.meta.url);
|
||||
|
|
@ -41,10 +42,7 @@ describe('FileInfoService', () => {
|
|||
app = await Test.createTestingModule({
|
||||
imports: [
|
||||
GlobalModule,
|
||||
],
|
||||
providers: [
|
||||
LoggerService,
|
||||
FileInfoService,
|
||||
CoreModule,
|
||||
],
|
||||
})
|
||||
.useMocker((token) => {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import { RelayService } from '@/core/RelayService.js';
|
|||
import { SystemAccountService } from '@/core/SystemAccountService.js';
|
||||
import { GlobalModule } from '@/GlobalModule.js';
|
||||
import { UtilityService } from '@/core/UtilityService.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
|
||||
const moduleMocker = new ModuleMocker(global);
|
||||
|
||||
|
|
@ -30,26 +31,17 @@ describe('RelayService', () => {
|
|||
app = await Test.createTestingModule({
|
||||
imports: [
|
||||
GlobalModule,
|
||||
],
|
||||
providers: [
|
||||
IdService,
|
||||
ApRendererService,
|
||||
RelayService,
|
||||
UserEntityService,
|
||||
SystemAccountService,
|
||||
UtilityService,
|
||||
CoreModule,
|
||||
],
|
||||
})
|
||||
.useMocker((token) => {
|
||||
if (token === QueueService) {
|
||||
return { deliver: jest.fn() };
|
||||
}
|
||||
if (typeof token === 'function') {
|
||||
const mockMetadata = moduleMocker.getMetadata(token) as MockFunctionMetadata<any, any>;
|
||||
const Mock = moduleMocker.generateFromMetadata(mockMetadata);
|
||||
return new Mock();
|
||||
}
|
||||
})
|
||||
.overrideProvider(QueueService).useValue({ deliver: jest.fn() })
|
||||
.compile();
|
||||
|
||||
await app.init();
|
||||
|
|
@ -63,6 +55,10 @@ describe('RelayService', () => {
|
|||
await app.close();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
queueService.deliver.mockReset();
|
||||
});
|
||||
|
||||
test('addRelay', async () => {
|
||||
const result = await relayService.addRelay('https://example.com');
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import {
|
|||
UploadPartCommand,
|
||||
} from '@aws-sdk/client-s3';
|
||||
import { mockClient } from 'aws-sdk-client-mock';
|
||||
import { FakeInternalEventService } from '../misc/FakeInternalEventService.js';
|
||||
import { MockInternalEventService } from '../misc/MockInternalEventService.js';
|
||||
import type { TestingModule } from '@nestjs/testing';
|
||||
import { GlobalModule } from '@/GlobalModule.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
|
|
@ -33,9 +33,8 @@ describe('S3Service', () => {
|
|||
beforeAll(async () => {
|
||||
app = await Test.createTestingModule({
|
||||
imports: [GlobalModule, CoreModule],
|
||||
providers: [S3Service],
|
||||
})
|
||||
.overrideProvider(InternalEventService).useClass(FakeInternalEventService)
|
||||
.overrideProvider(InternalEventService).useClass(MockInternalEventService)
|
||||
.compile();
|
||||
|
||||
await app.init();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue