From 79ff667ced8d04ceb35e2ef5a84a92b8377fce59 Mon Sep 17 00:00:00 2001 From: SmileQWQ Date: Thu, 23 Apr 2026 10:07:47 +0800 Subject: [PATCH] test: align cf-worker suite with settings getter refactor Update API tests to match the earlier worker-side settings getter split so the branch passes a full health check instead of only targeted web tests. - switch notification merge tests to mock getNotificationScanSettings - switch AI service tests to mock getAiConfig - update subscription route tests to mock getDefaultAdvanceReminderRulesSetting - replace outdated invalid tag ids with current schema-valid ids Verification completed after the changes: - npm test - npm run lint - npm run build --- .../integration/subscriptions-routes.test.ts | 17 ++++++++--------- apps/api/tests/unit/ai.service.test.ts | 2 +- apps/api/tests/unit/notification-merge.test.ts | 7 ++----- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/apps/api/tests/integration/subscriptions-routes.test.ts b/apps/api/tests/integration/subscriptions-routes.test.ts index 631d6d5..e80cb19 100644 --- a/apps/api/tests/integration/subscriptions-routes.test.ts +++ b/apps/api/tests/integration/subscriptions-routes.test.ts @@ -30,10 +30,7 @@ const routeMocks = vi.hoisted(() => ({ })), saveUploadedLogo: vi.fn(), searchSubscriptionLogos: vi.fn(async () => []), - getAppSettings: vi.fn(async () => ({ - defaultAdvanceReminderRules: '3&09:30;0&09:30;', - defaultOverdueReminderRules: '1&09:30;' - })) + getDefaultAdvanceReminderRulesSetting: vi.fn(async () => '3&09:30;0&09:30;') })) vi.mock('../../src/db', () => ({ @@ -67,10 +64,12 @@ vi.mock('../../src/services/logo.service', () => ({ })) vi.mock('../../src/services/settings.service', () => ({ - getAppSettings: routeMocks.getAppSettings + getDefaultAdvanceReminderRulesSetting: routeMocks.getDefaultAdvanceReminderRulesSetting })) describe('subscription routes D1 compatibility', () => { + const validTagIds = ['cm0a5a6vla9d78e4cec174aa8'] + beforeEach(() => { vi.resetModules() vi.clearAllMocks() @@ -104,13 +103,13 @@ describe('subscription routes D1 compatibility', () => { notifyDaysBefore: 3, webhookEnabled: true, notes: '', - tagIds: ['cksubtracker000000000000001'] + tagIds: validTagIds } }) expect(response.statusCode).toBe(201) expect(routeMocks.prisma.$transaction).not.toHaveBeenCalled() - expect(routeMocks.replaceSubscriptionTags).toHaveBeenCalledWith(routeMocks.prisma, 'sub_1', ['cksubtracker000000000000001']) + expect(routeMocks.replaceSubscriptionTags).toHaveBeenCalledWith(routeMocks.prisma, 'sub_1', validTagIds) expect(routeMocks.appendSubscriptionOrder).toHaveBeenCalledWith('sub_1') await app.close() @@ -133,13 +132,13 @@ describe('subscription routes D1 compatibility', () => { url: '/subscriptions/sub_1', payload: { name: '哔哩哔哩年度大会员', - tagIds: ['cksubtracker000000000000002'] + tagIds: validTagIds } }) expect(response.statusCode).toBe(200) expect(routeMocks.prisma.$transaction).not.toHaveBeenCalled() - expect(routeMocks.replaceSubscriptionTags).toHaveBeenCalledWith(routeMocks.prisma, 'sub_1', ['cksubtracker000000000000002']) + expect(routeMocks.replaceSubscriptionTags).toHaveBeenCalledWith(routeMocks.prisma, 'sub_1', validTagIds) await app.close() }) diff --git a/apps/api/tests/unit/ai.service.test.ts b/apps/api/tests/unit/ai.service.test.ts index 0490339..77f22f8 100644 --- a/apps/api/tests/unit/ai.service.test.ts +++ b/apps/api/tests/unit/ai.service.test.ts @@ -15,7 +15,7 @@ const mockedSettings: { } vi.mock('../../src/services/settings.service', () => ({ - getAppSettings: vi.fn(async () => mockedSettings) + getAiConfig: vi.fn(async () => mockedSettings.aiConfig) })) import { recognizeSubscriptionByAi, testAiConnection, testAiVisionConnection } from '../../src/services/ai.service' diff --git a/apps/api/tests/unit/notification-merge.test.ts b/apps/api/tests/unit/notification-merge.test.ts index 2024bab..2de890d 100644 --- a/apps/api/tests/unit/notification-merge.test.ts +++ b/apps/api/tests/unit/notification-merge.test.ts @@ -7,13 +7,10 @@ const notificationState = vi.hoisted(() => ({ })) vi.mock('../../src/services/settings.service', () => ({ - getAppSettings: vi.fn(async () => ({ + getNotificationScanSettings: vi.fn(async () => ({ defaultAdvanceReminderRules: '3&09:30;0&09:30;', defaultOverdueReminderRules: '1&09:30;2&09:30;3&09:30;', - defaultNotifyDays: 3, - notifyOnDueDay: true, - mergeMultiSubscriptionNotifications: notificationState.mergeMultiSubscriptionNotifications, - overdueReminderDays: [1, 2, 3] + mergeMultiSubscriptionNotifications: notificationState.mergeMultiSubscriptionNotifications })) }))