fix tests
This commit is contained in:
parent
380e078210
commit
9018b7cebe
|
@ -101,7 +101,6 @@ export const DEFAULT_POLICIES: RolePolicies = {
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class RoleService implements OnApplicationShutdown, OnModuleInit {
|
export class RoleService implements OnApplicationShutdown, OnModuleInit {
|
||||||
private rootUserIdCache: MemorySingleCache<MiUser['id']>;
|
|
||||||
private rolesCache: MemorySingleCache<MiRole[]>;
|
private rolesCache: MemorySingleCache<MiRole[]>;
|
||||||
private roleAssignmentByUserIdCache: MemoryKVCache<MiRoleAssignment[]>;
|
private roleAssignmentByUserIdCache: MemoryKVCache<MiRoleAssignment[]>;
|
||||||
private notificationService: NotificationService;
|
private notificationService: NotificationService;
|
||||||
|
@ -137,7 +136,6 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit {
|
||||||
private moderationLogService: ModerationLogService,
|
private moderationLogService: ModerationLogService,
|
||||||
private fanoutTimelineService: FanoutTimelineService,
|
private fanoutTimelineService: FanoutTimelineService,
|
||||||
) {
|
) {
|
||||||
this.rootUserIdCache = new MemorySingleCache<MiUser['id']>(1000 * 60 * 60 * 24 * 7); // 1week. rootユーザのIDは不変なので長めに
|
|
||||||
this.rolesCache = new MemorySingleCache<MiRole[]>(1000 * 60 * 60); // 1h
|
this.rolesCache = new MemorySingleCache<MiRole[]>(1000 * 60 * 60); // 1h
|
||||||
this.roleAssignmentByUserIdCache = new MemoryKVCache<MiRoleAssignment[]>(1000 * 60 * 5); // 5m
|
this.roleAssignmentByUserIdCache = new MemoryKVCache<MiRoleAssignment[]>(1000 * 60 * 5); // 5m
|
||||||
|
|
||||||
|
|
|
@ -6,19 +6,17 @@
|
||||||
process.env.NODE_ENV = 'test';
|
process.env.NODE_ENV = 'test';
|
||||||
|
|
||||||
import { jest } from '@jest/globals';
|
import { jest } from '@jest/globals';
|
||||||
import { ModuleMocker } from 'jest-mock';
|
|
||||||
import { Test } from '@nestjs/testing';
|
import { Test } from '@nestjs/testing';
|
||||||
import { GlobalModule } from '@/GlobalModule.js';
|
import { ModuleMocker } from 'jest-mock';
|
||||||
import { RelayService } from '@/core/RelayService.js';
|
|
||||||
import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
|
|
||||||
import { CreateSystemUserService } from '@/core/CreateSystemUserService.js';
|
|
||||||
import { UserEntityService } from '@/core/entities/UserEntityService.js';
|
|
||||||
import { QueueService } from '@/core/QueueService.js';
|
|
||||||
import { IdService } from '@/core/IdService.js';
|
|
||||||
import type { RelaysRepository } from '@/models/_.js';
|
|
||||||
import { DI } from '@/di-symbols.js';
|
|
||||||
import type { TestingModule } from '@nestjs/testing';
|
import type { TestingModule } from '@nestjs/testing';
|
||||||
import type { MockFunctionMetadata } from 'jest-mock';
|
import type { MockFunctionMetadata } from 'jest-mock';
|
||||||
|
import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
|
||||||
|
import { UserEntityService } from '@/core/entities/UserEntityService.js';
|
||||||
|
import { IdService } from '@/core/IdService.js';
|
||||||
|
import { QueueService } from '@/core/QueueService.js';
|
||||||
|
import { RelayService } from '@/core/RelayService.js';
|
||||||
|
import { SystemAccountService } from '@/core/SystemAccountService.js';
|
||||||
|
import { GlobalModule } from '@/GlobalModule.js';
|
||||||
|
|
||||||
const moduleMocker = new ModuleMocker(global);
|
const moduleMocker = new ModuleMocker(global);
|
||||||
|
|
||||||
|
@ -26,8 +24,6 @@ describe('RelayService', () => {
|
||||||
let app: TestingModule;
|
let app: TestingModule;
|
||||||
let relayService: RelayService;
|
let relayService: RelayService;
|
||||||
let queueService: jest.Mocked<QueueService>;
|
let queueService: jest.Mocked<QueueService>;
|
||||||
let relaysRepository: RelaysRepository;
|
|
||||||
let userEntityService: UserEntityService;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
app = await Test.createTestingModule({
|
app = await Test.createTestingModule({
|
||||||
|
@ -36,10 +32,10 @@ describe('RelayService', () => {
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
IdService,
|
IdService,
|
||||||
CreateSystemUserService,
|
|
||||||
ApRendererService,
|
ApRendererService,
|
||||||
RelayService,
|
RelayService,
|
||||||
UserEntityService,
|
UserEntityService,
|
||||||
|
SystemAccountService,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
.useMocker((token) => {
|
.useMocker((token) => {
|
||||||
|
@ -58,8 +54,6 @@ describe('RelayService', () => {
|
||||||
|
|
||||||
relayService = app.get<RelayService>(RelayService);
|
relayService = app.get<RelayService>(RelayService);
|
||||||
queueService = app.get<QueueService>(QueueService) as jest.Mocked<QueueService>;
|
queueService = app.get<QueueService>(QueueService) as jest.Mocked<QueueService>;
|
||||||
relaysRepository = app.get<RelaysRepository>(DI.relaysRepository);
|
|
||||||
userEntityService = app.get<UserEntityService>(UserEntityService);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
|
|
|
@ -57,6 +57,12 @@ describe('RoleService', () => {
|
||||||
return await usersRepository.findOneByOrFail(x.identifiers[0]);
|
return await usersRepository.findOneByOrFail(x.identifiers[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function createRoot(data: Partial<MiUser> = {}) {
|
||||||
|
const user = await createUser(data);
|
||||||
|
meta.rootUserId = user.id;
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
async function createRole(data: Partial<MiRole> = {}) {
|
async function createRole(data: Partial<MiRole> = {}) {
|
||||||
const x = await rolesRepository.insert({
|
const x = await rolesRepository.insert({
|
||||||
id: genAidx(Date.now()),
|
id: genAidx(Date.now()),
|
||||||
|
@ -279,7 +285,7 @@ describe('RoleService', () => {
|
||||||
describe('getModeratorIds', () => {
|
describe('getModeratorIds', () => {
|
||||||
test('includeAdmins = false, includeRoot = false, excludeExpire = false', async () => {
|
test('includeAdmins = false, includeRoot = false, excludeExpire = false', async () => {
|
||||||
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -305,7 +311,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('includeAdmins = false, includeRoot = false, excludeExpire = true', async () => {
|
test('includeAdmins = false, includeRoot = false, excludeExpire = true', async () => {
|
||||||
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -331,7 +337,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('includeAdmins = true, includeRoot = false, excludeExpire = false', async () => {
|
test('includeAdmins = true, includeRoot = false, excludeExpire = false', async () => {
|
||||||
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -357,7 +363,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('includeAdmins = true, includeRoot = false, excludeExpire = true', async () => {
|
test('includeAdmins = true, includeRoot = false, excludeExpire = true', async () => {
|
||||||
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -383,7 +389,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('includeAdmins = false, includeRoot = true, excludeExpire = false', async () => {
|
test('includeAdmins = false, includeRoot = true, excludeExpire = false', async () => {
|
||||||
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -409,7 +415,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('root has moderator role', async () => {
|
test('root has moderator role', async () => {
|
||||||
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -433,7 +439,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('root has administrator role', async () => {
|
test('root has administrator role', async () => {
|
||||||
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
@ -457,7 +463,7 @@ describe('RoleService', () => {
|
||||||
|
|
||||||
test('root has moderator role(expire)', async () => {
|
test('root has moderator role(expire)', async () => {
|
||||||
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
const [adminUser1, modeUser1, normalUser1, rootUser] = await Promise.all([
|
||||||
createUser(), createUser(), createUser(), createUser({ isRoot: true }),
|
createUser(), createUser(), createUser(), createRoot(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
const role1 = await createRole({ name: 'admin', isAdministrator: true });
|
||||||
|
|
Loading…
Reference in New Issue