1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-04 21:15:45 +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

@@ -6,12 +6,12 @@
process.env.NODE_ENV = 'test';
import { setTimeout } from 'node:timers/promises';
import { describe, jest } from '@jest/globals';
import { ModuleMocker } from 'jest-mock';
import { describe, beforeEach, afterEach, test, expect, vi } from 'vitest';
import type { Mocked } from 'vitest';
import { mockDeep } from 'vitest-mock-extended';
import { Test } from '@nestjs/testing';
import * as lolex from '@sinonjs/fake-timers';
import type { TestingModule } from '@nestjs/testing';
import type { MockMetadata } from 'jest-mock';
import { GlobalModule } from '@/GlobalModule.js';
import { RoleService } from '@/core/RoleService.js';
import {
@@ -34,16 +34,14 @@ import { NotificationService } from '@/core/NotificationService.js';
import { RoleCondFormulaValue } from '@/models/Role.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
const moduleMocker = new ModuleMocker(global);
describe('RoleService', () => {
let app: TestingModule;
let roleService: RoleService;
let usersRepository: UsersRepository;
let rolesRepository: RolesRepository;
let roleAssignmentsRepository: RoleAssignmentsRepository;
let meta: jest.Mocked<MiMeta>;
let notificationService: jest.Mocked<NotificationService>;
let meta: Mocked<MiMeta>;
let notificationService: Mocked<NotificationService>;
let clock: lolex.Clock;
async function createUser(data: Partial<MiUser> = {}) {
@@ -123,7 +121,7 @@ describe('RoleService', () => {
{
provide: NotificationService,
useFactory: () => ({
createNotification: jest.fn(),
createNotification: vi.fn(),
}),
},
{
@@ -134,12 +132,10 @@ describe('RoleService', () => {
})
.useMocker((token) => {
if (token === MetaService) {
return { fetch: jest.fn() };
return { fetch: vi.fn() };
}
if (typeof token === 'function') {
const mockMetadata = moduleMocker.getMetadata(token) as MockMetadata<any, any>;
const Mock = moduleMocker.generateFromMetadata(mockMetadata);
return new Mock();
return mockDeep<typeof token>();
}
})
.compile();
@@ -151,8 +147,8 @@ describe('RoleService', () => {
rolesRepository = app.get<RolesRepository>(DI.rolesRepository);
roleAssignmentsRepository = app.get<RoleAssignmentsRepository>(DI.roleAssignmentsRepository);
meta = app.get<MiMeta>(DI.meta) as jest.Mocked<MiMeta>;
notificationService = app.get<NotificationService>(NotificationService) as jest.Mocked<NotificationService>;
meta = app.get<MiMeta>(DI.meta) as Mocked<MiMeta>;
notificationService = app.get<NotificationService>(NotificationService) as Mocked<NotificationService>;
await roleService.onModuleInit();
});