收口个人中心泥点账单弹窗壳层

RpgEntryHomeView 的 WalletLedgerModal 改用 UnifiedModal 并保留渐变面板与关闭语义
账单弹窗测试改为断言具名 dialog 与关闭卸载路径
更新 PlatformUiKit 收口计划与 .hermes 决策记录
This commit is contained in:
2026-06-10 17:31:56 +08:00
parent 488c69aecc
commit f5536a14e6
4 changed files with 109 additions and 93 deletions

View File

@@ -1256,10 +1256,12 @@ test('opens wallet ledger modal from narrative coin card', async () => {
renderProfileView();
await user.click(screen.getByRole('button', { name: /\s*0/u }));
expect(await screen.findByText('泥点账单')).toBeTruthy();
const ledgerModal = screen
.getByText('泥点账单')
.closest('.fixed') as HTMLElement;
const ledgerModal = await screen.findByRole('dialog', { name: '泥点账单' });
expect(ledgerModal).toBeTruthy();
expect(
within(ledgerModal).getByRole('button', { name: '关闭泥点账单' }),
).toBeTruthy();
const balanceBadge = within(ledgerModal).getByText('29泥点');
expect(balanceBadge.className).toContain('rounded-full');
expect(balanceBadge.className).toContain('border-rose-100');
@@ -3197,10 +3199,13 @@ test('wallet ledger modal shows empty and error states', async () => {
});
await user.click(screen.getByLabelText('关闭泥点账单'));
await waitFor(() => {
expect(screen.queryByRole('dialog', { name: '泥点账单' })).toBeNull();
});
mockGetRpgProfileWalletLedger.mockRejectedValueOnce(new Error('加载失败'));
await user.click(screen.getByRole('button', { name: /\s*0/u }));
expect(await screen.findByText('泥点账单')).toBeTruthy();
expect(await screen.findByRole('dialog', { name: '泥点账单' })).toBeTruthy();
await waitFor(() => {
expect(screen.getByText('加载失败')).toBeTruthy();
});