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 commitb7b7b05d85. * 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 commit4715153375. * fix: エンドポイントにまつわるテストをunitからe2eに移動 * attempt to fix e2e * remove swc * attempt to fix e2e * Revert "attempt to fix e2e" This reverts commit9fb86a4076. * add logs for debug * attempt to fix e2e * Partially revert "attempt to fix e2e" This reverts commitfb0008c85a. * attempt to fix test * fix: attempt to fix test * Revert "fix: attempt to fix test" This reverts commited2f5c40e8. * Revert "attempt to fix test" This reverts commitd7329c46f1. * 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 commit26851f8282. * update changelog
This commit is contained in:
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user