From e1044879ea3be8fd6d737216370c0ea1d74fc8f6 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Mon, 6 Oct 2025 11:41:44 -0400 Subject: [PATCH] fix merge errors --- .../backend/src/core/RemoteUserResolveService.ts | 6 ++++-- .../backend/src/server/SkRateLimiterService.ts | 14 +++++++++++++- .../unit/server/api/SkRateLimiterServiceTests.ts | 13 ------------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/backend/src/core/RemoteUserResolveService.ts b/packages/backend/src/core/RemoteUserResolveService.ts index 434edcfd0c..e84fd9dfe2 100644 --- a/packages/backend/src/core/RemoteUserResolveService.ts +++ b/packages/backend/src/core/RemoteUserResolveService.ts @@ -20,6 +20,7 @@ import { ApPersonService } from '@/core/activitypub/models/ApPersonService.js'; import { bindThis } from '@/decorators.js'; import { renderInlineError } from '@/misc/render-inline-error.js'; import { CacheService } from '@/core/CacheService.js'; +import { TimeService } from '@/core/TimeService.js'; import * as Acct from '@/misc/acct.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; import { InternalEventService } from '@/core/InternalEventService.js'; @@ -43,6 +44,7 @@ export class RemoteUserResolveService { private apPersonService: ApPersonService, private readonly cacheService: CacheService, private readonly internalEventService: InternalEventService, + private readonly timeService: TimeService, ) { this.logger = this.remoteLoggerService.logger.createSubLogger('resolve-user'); this.selfHost = this.utilityService.toPuny(this.config.host); @@ -99,7 +101,7 @@ export class RemoteUserResolveService { private async tryUpdateUser(user: MiRemoteUser, acctLower: string): Promise { // Don't update unless the user is at least 24 hours outdated. // ユーザー情報が古い場合は、WebFingerからやりなおして返す - if (user.lastFetchedAt != null && Date.now() - user.lastFetchedAt.getTime() <= 1000 * 60 * 60 * 24) { + if (user.lastFetchedAt != null && this.timeService.now - user.lastFetchedAt.getTime() <= 1000 * 60 * 60 * 24) { return user; } @@ -116,7 +118,7 @@ export class RemoteUserResolveService { // Always mark as updated so we don't get stuck here for missing remote users. // 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する await this.usersRepository.update(user.id, { - lastFetchedAt: new Date(), + lastFetchedAt: this.timeService.now, }); } diff --git a/packages/backend/src/server/SkRateLimiterService.ts b/packages/backend/src/server/SkRateLimiterService.ts index 3212e5b4bd..377da6605d 100644 --- a/packages/backend/src/server/SkRateLimiterService.ts +++ b/packages/backend/src/server/SkRateLimiterService.ts @@ -8,7 +8,19 @@ import Redis from 'ioredis'; import type { MiUser } from '@/models/_.js'; import { TimeService } from '@/global/TimeService.js'; import { EnvService } from '@/global/EnvService.js'; -import { BucketRateLimit, LegacyRateLimit, LimitInfo, RateLimit, hasMinLimit, isLegacyRateLimit, Keyed, hasMaxLimit, disabledLimitInfo, MaxLegacyLimit, MinLegacyLimit } from '@/misc/rate-limit-utils.js'; +import { + type BucketRateLimit, + type LegacyRateLimit, + type LimitInfo, + type RateLimit, + type Keyed, + type MaxLegacyLimit, + type MinLegacyLimit, + hasMinLimit, + isLegacyRateLimit, + hasMaxLimit, + disabledLimitInfo, +} from '@/misc/rate-limit-utils.js'; import { RoleService } from '@/core/RoleService.js'; import { CacheManagementService, type ManagedMemoryKVCache } from '@/global/CacheManagementService.js'; import { ConflictError } from '@/misc/errors/ConflictError.js'; diff --git a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts index e9aff39f06..a8f88d2454 100644 --- a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts +++ b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts @@ -58,19 +58,6 @@ describe(SkRateLimiterService, () => { }; }); - afterEach(() => { - cacheManagementService.dispose(); - mockInternalEventService.mockReset(); - mockRedis.mockReset(); - - mockEnvService.mockReset(); - mockEnvService.env.NODE_ENV = 'production'; - }); - - afterEach(() => { - serviceUnderTest().dispose(); - }); - describe('limit', () => { const actor = 'actor'; const key = 'test';