feat(billing): E4 — убрать mock pending-баннер (нет платёжного шлюза до Б-1)

This commit is contained in:
Дмитрий
2026-05-17 04:48:41 +03:00
parent d667feda0f
commit 42409ddec0
3 changed files with 8 additions and 41 deletions
@@ -1,24 +0,0 @@
/**
* Мок платежа «в обработке» для pending-баннера BillingView.
*
* Кошелёк / транзакции / счета подключены к real API (api/billing.ts) в
* Sprint 2 Plan C (E3). Pending-баннер — отдельный эпик E4 (Sprint 5);
* до его реализации остаётся mock.
*/
export interface PendingPayment {
code: string;
amount: number;
method: string;
startedAt: string;
autoCancelAt: string;
timeoutMinutes: number;
}
export const MOCK_PENDING: PendingPayment | null = {
code: 'TX-89421',
amount: 5000,
method: 'ЮKassa',
startedAt: '14:21',
autoCancelAt: '14:51',
timeoutMinutes: 30,
};
+2 -17
View File
@@ -6,9 +6,8 @@
* Sprint 2 Plan C (E3): Overview-таб подвязан на real API
* (GET /api/billing/wallet → BalanceCard + шапка; TransactionsTable и
* InvoicesTable тянут данные сами). Списания — ChargesTab (Plan 4).
*
* Pending-баннер остаётся mock (MOCK_PENDING) — это отдельный эпик E4
* (Sprint 5). TopupDialog «Пополнить баланс» — Task 5 (E1).
* Sprint 5C (E4): pending-баннер убран — платёжного шлюза нет (Б-1), реального состояния «платёж в обработке» в БД не существует.
* TopupDialog «Пополнить баланс» — Task 5 (E1).
*/
import { ref, computed, onMounted } from 'vue';
import BalanceCard from '../components/billing/BalanceCard.vue';
@@ -16,7 +15,6 @@ import TransactionsTable from '../components/billing/TransactionsTable.vue';
import InvoicesTable from '../components/billing/InvoicesTable.vue';
import TopupDialog from '../components/billing/TopupDialog.vue';
import ChargesTab from './billing/ChargesTab.vue';
import { MOCK_PENDING } from '../composables/mockBilling';
import { formatPlain, featureLabel } from '../composables/billingFormatters';
import { getWallet, type Wallet } from '../api/billing';
import { extractErrorMessage } from '../api/client';
@@ -111,19 +109,6 @@ defineExpose({ loadWallet, wallet, topupOpen });
</v-alert>
<template v-else-if="wallet">
<v-alert
v-if="MOCK_PENDING"
type="info"
variant="tonal"
density="compact"
class="mt-4"
role="status"
>
<strong>1 платёж в обработке</strong> {{ formatPlain(MOCK_PENDING.amount) }} от
{{ MOCK_PENDING.method }}, начат {{ MOCK_PENDING.startedAt }}. Авто-восстановление в
{{ MOCK_PENDING.autoCancelAt }} ({{ MOCK_PENDING.timeoutMinutes }} мин).
</v-alert>
<BalanceCard
:wallet-rub="walletRub"
:leads-balance="leadsBalance"
+6
View File
@@ -114,4 +114,10 @@ describe('BillingView.vue', () => {
await btn!.trigger('click');
expect((wrapper.vm as unknown as { topupOpen: boolean }).topupOpen).toBe(true);
});
it('не показывает pending-баннер (E4 — mock убран)', async () => {
const wrapper = factory();
await flushPromises();
expect(wrapper.text()).not.toContain('в обработке');
});
});