From 327cf3d2a8c941213ea4b6003685cbede770b7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 5 Aug 2026 17:53:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=92=E4=B8=80=E5=8C=96=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E5=BF=AB=E7=85=A7=E8=B4=A6=E5=8F=B7=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在应用外部钱包快照前统一 trim owner ID,保持与 owner 绑定入口相同的边界规则。 补充带前后空白的同账号快照回归测试。 --- .../src/stores/createProfileWalletStore.test.ts | 16 ++++++++++++++++ .../src/stores/createProfileWalletStore.ts | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/shared/src/stores/createProfileWalletStore.test.ts b/packages/shared/src/stores/createProfileWalletStore.test.ts index 92399e2cf..39502b4a9 100644 --- a/packages/shared/src/stores/createProfileWalletStore.test.ts +++ b/packages/shared/src/stores/createProfileWalletStore.test.ts @@ -182,4 +182,20 @@ describe('createProfileWalletStore', () => { expect(store.getState().mudPointBalance).toBeNull(); expect(store.getState().mudPointBalanceStatus).toBe('idle'); }); + + test('normalizes a snapshot owner before matching it', () => { + const store = createProfileWalletStore({ + getRechargeCenter: vi.fn(), + }); + store.getState().setWalletOwner('user-a'); + + store + .getState() + .applyWalletBalanceSnapshot(' user-a ', balance(100)); + + expect(store.getState()).toMatchObject({ + mudPointBalance: balance(100), + mudPointBalanceStatus: 'ready', + }); + }); }); diff --git a/packages/shared/src/stores/createProfileWalletStore.ts b/packages/shared/src/stores/createProfileWalletStore.ts index 02497b042..527c5ff08 100644 --- a/packages/shared/src/stores/createProfileWalletStore.ts +++ b/packages/shared/src/stores/createProfileWalletStore.ts @@ -64,7 +64,11 @@ export function createProfileWalletStore( }); }, applyWalletBalanceSnapshot: (ownerUserId, balance) => { - if (!ownerUserId || get().ownerUserId !== ownerUserId) { + const normalizedOwnerUserId = ownerUserId.trim(); + if ( + !normalizedOwnerUserId || + get().ownerUserId !== normalizedOwnerUserId + ) { return; }