diff --git a/src/services/platform-entry/platformProfileClient.test.ts b/src/services/platform-entry/platformProfileClient.test.ts new file mode 100644 index 000000000..a4f2e24e7 --- /dev/null +++ b/src/services/platform-entry/platformProfileClient.test.ts @@ -0,0 +1,37 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest'; + +const apiClientMocks = vi.hoisted(() => ({ + fetchWithApiAuth: vi.fn(), + requestJson: vi.fn(), +})); + +vi.mock('../apiClient', () => apiClientMocks); + +import { getPlatformProfileRechargeCenter } from './platformProfileClient'; + +describe('platformProfileClient', () => { + beforeEach(() => { + apiClientMocks.requestJson.mockReset(); + apiClientMocks.requestJson.mockResolvedValue({}); + }); + + test('forwards the recharge-center abort signal through request options', async () => { + const abortController = new AbortController(); + + await getPlatformProfileRechargeCenter({ + signal: abortController.signal, + }); + + expect(apiClientMocks.requestJson).toHaveBeenCalledWith( + '/api/profile/recharge-center', + { + method: 'GET', + signal: abortController.signal, + }, + '读取泥点购买信息失败', + expect.objectContaining({ + retry: expect.any(Object), + }), + ); + }); +}); diff --git a/src/services/platform-entry/platformProfileClient.ts b/src/services/platform-entry/platformProfileClient.ts index 98a7e1ea7..7164a8118 100644 --- a/src/services/platform-entry/platformProfileClient.ts +++ b/src/services/platform-entry/platformProfileClient.ts @@ -142,11 +142,10 @@ export function revokePlatformProfileExternalApiKey( export function getPlatformProfileRechargeCenter( options: PlatformProfileRequestOptions = {}, - signal?: AbortSignal, ) { return requestPlatformProfileJson( '/recharge-center', - { method: 'GET', signal }, + { method: 'GET' }, '读取泥点购买信息失败', options, ); diff --git a/src/stores/usePlatformWalletStore.ts b/src/stores/usePlatformWalletStore.ts index fbea92a11..89cb7017e 100644 --- a/src/stores/usePlatformWalletStore.ts +++ b/src/stores/usePlatformWalletStore.ts @@ -5,7 +5,7 @@ import { getPlatformProfileRechargeCenter } from '@/src/services/platform-entry/ export const usePlatformWalletStore = createProfileWalletStore({ getRechargeCenter: (signal) => - getPlatformProfileRechargeCenter({}, signal), + getPlatformProfileRechargeCenter({ signal }), }); export function usePlatformWalletLifecycle( diff --git a/vitest.config.ts b/vitest.config.ts index ca9e179c6..7672c4752 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -46,6 +46,7 @@ export default defineConfig({ 'src/services/image-editor/**/*.test.ts', 'src/services/external-generation/**/*.test.ts', 'src/services/payment/**/*.test.ts', + 'src/services/platform-entry/platformProfileClient.test.ts', 'src/components/auth/**/*.test.ts', 'src/components/auth/**/*.test.tsx', 'src/components/creation-home/**/*.test.ts',