1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-04 23:35:38 +02:00

enhance(backend/test): Migrate tests to vitest (#16935)

* wip

* update fake-timers and migrate

* fix

* remove jest-mock

* fix

* fix

* fix

* fix

* attempt to fix unit tests

* attempt to fix e2e tests

* fix federation test [ci skip]

* attempt to fix e2e tests

* fix typecheck

* fix unit tests

* fix

* attempt to fix e2e

* fix

* Revert "attempt to fix e2e"

This reverts commit b7b7b05d85.

* attempt to fix e2e

* revert attempt to fix e2e

* update deps

* update vitest

* migrate

* attempt to fix e2e

* update

* fix

* remove vite swc plugin as oxc parser can handle decorators

* attempt to fix drive/files/create test

* Revert "attempt to fix drive/files/create test"

This reverts commit 4715153375.

* fix: エンドポイントにまつわるテストをunitからe2eに移動

* attempt to fix e2e

* remove swc

* attempt to fix e2e

* Revert "attempt to fix e2e"

This reverts commit 9fb86a4076.

* add logs for debug

* attempt to fix e2e

* Partially revert "attempt to fix e2e"

This reverts commit fb0008c85a.

* attempt to fix test

* fix: attempt to fix test

* Revert "fix: attempt to fix test"

This reverts commit ed2f5c40e8.

* Revert "attempt to fix test"

This reverts commit d7329c46f1.

* attempt to fix e2e

* fix: surpass eventemitter warning by increasing defaultMaxListeners

* attempt to fix e2e

* fix

* fix e2e not ending properly

* exp: add hanging-process reporter for investigation

* Revert "exp: add hanging-process reporter for investigation"

This reverts commit 26851f8282.

* update changelog
This commit is contained in:
かっこかり
2026-04-20 14:57:29 +09:00
committed by GitHub
parent 1391269a67
commit 6d15fe32d0
112 changed files with 755 additions and 3068 deletions

View File

@@ -3,7 +3,8 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { jest } from '@jest/globals';
import { describe, expect, test, beforeAll, beforeEach, afterEach, afterAll, vi } from 'vitest';
import type { Mocked } from 'vitest';
import { Test, TestingModule } from '@nestjs/testing';
import * as lolex from '@sinonjs/fake-timers';
import { addHours, addSeconds, subDays, subHours, subSeconds } from 'date-fns';
@@ -32,10 +33,10 @@ describe('CheckModeratorsActivityProcessorService', () => {
let usersRepository: UsersRepository;
let userProfilesRepository: UserProfilesRepository;
let idService: IdService;
let roleService: jest.Mocked<RoleService>;
let announcementService: jest.Mocked<AnnouncementService>;
let emailService: jest.Mocked<EmailService>;
let systemWebhookService: jest.Mocked<SystemWebhookService>;
let roleService: Mocked<RoleService>;
let announcementService: Mocked<AnnouncementService>;
let emailService: Mocked<EmailService>;
let systemWebhookService: Mocked<SystemWebhookService>;
let systemWebhook1: MiSystemWebhook;
let systemWebhook2: MiSystemWebhook;
@@ -94,30 +95,30 @@ describe('CheckModeratorsActivityProcessorService', () => {
CheckModeratorsActivityProcessorService,
IdService,
{
provide: RoleService, useFactory: () => ({ getModerators: jest.fn() }),
provide: RoleService, useFactory: () => ({ getModerators: vi.fn() }),
},
{
provide: MetaService, useFactory: () => ({ fetch: jest.fn() }),
provide: MetaService, useFactory: () => ({ fetch: vi.fn() }),
},
{
provide: AnnouncementService, useFactory: () => ({ create: jest.fn() }),
provide: AnnouncementService, useFactory: () => ({ create: vi.fn() }),
},
{
provide: EmailService, useFactory: () => ({ sendEmail: jest.fn() }),
provide: EmailService, useFactory: () => ({ sendEmail: vi.fn() }),
},
{
provide: SystemWebhookService, useFactory: () => ({
fetchActiveSystemWebhooks: jest.fn(),
enqueueSystemWebhook: jest.fn(),
fetchActiveSystemWebhooks: vi.fn(),
enqueueSystemWebhook: vi.fn(),
}),
},
{
provide: QueueLoggerService, useFactory: () => ({
logger: ({
createSubLogger: () => ({
info: jest.fn(),
warn: jest.fn(),
succ: jest.fn(),
info: vi.fn(),
warn: vi.fn(),
succ: vi.fn(),
}),
}),
}),
@@ -131,10 +132,10 @@ describe('CheckModeratorsActivityProcessorService', () => {
service = app.get(CheckModeratorsActivityProcessorService);
idService = app.get(IdService);
roleService = app.get(RoleService) as jest.Mocked<RoleService>;
announcementService = app.get(AnnouncementService) as jest.Mocked<AnnouncementService>;
emailService = app.get(EmailService) as jest.Mocked<EmailService>;
systemWebhookService = app.get(SystemWebhookService) as jest.Mocked<SystemWebhookService>;
roleService = app.get(RoleService) as Mocked<RoleService>;
announcementService = app.get(AnnouncementService) as Mocked<AnnouncementService>;
emailService = app.get(EmailService) as Mocked<EmailService>;
systemWebhookService = app.get(SystemWebhookService) as Mocked<SystemWebhookService>;
app.enableShutdownHooks();
});

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { jest } from '@jest/globals';
import { describe, expect, test, beforeAll, afterAll, beforeEach, afterEach, vi } from 'vitest';
import { Test, TestingModule } from '@nestjs/testing';
import ms from 'ms';
import {
@@ -44,8 +44,8 @@ describe('CleanRemoteNotesProcessorService', () => {
// Mock job object
const createMockJob = () => ({
log: jest.fn(),
updateProgress: jest.fn(),
log: vi.fn(),
updateProgress: vi.fn(),
});
async function createUser(data: Partial<MiUser> = {}) {
@@ -96,9 +96,9 @@ describe('CleanRemoteNotesProcessorService', () => {
useFactory: () => ({
logger: {
createSubLogger: () => ({
info: jest.fn(),
warn: jest.fn(),
succ: jest.fn(),
info: vi.fn(),
warn: vi.fn(),
succ: vi.fn(),
}),
},
}),
@@ -125,7 +125,7 @@ describe('CleanRemoteNotesProcessorService', () => {
beforeEach(() => {
// Reset mocks
jest.clearAllMocks();
vi.clearAllMocks();
// Set default meta values
meta.enableRemoteNotesCleaning = true;