Task-kiosk-260 — Manual Test Cases
Feature version: V1.2.0
Reference doc: Task-kiosk-260 spec
Result notation: ✅ Pass | ❌ Fail | ⏭ Skip | 🐛 Fail + bug report
Changelog
| Date | Version | Change | Author |
|---|
| 2026-06-20 | v1.0 | Short QC checklist (T-1 → T-6) | — |
| 2026-06-20 | v1.1 | Expanded to full manual test cases for QC | — |
| 2026-06-20 | v1.2 | Fixed TC-001: shop/agent USD withdrawal is auto payout | — |
| 2026-06-20 | v1.3 | Fixed UI navigation: removed "Activity tab" | — |
| 2026-06-20 | v1.4 | Removed Transaction Reversal / Refund payout-fail TCs (not reproducible on staging); renumbered | — |
Test objectives
Verify Admin Portal no longer uses "Adjustment" as a generic label, and clearly distinguishes display types reproducible on staging:
| Operation | Expected UI label | Manual QC |
|---|
| Admin debits balance to fix error | Balance Correction — Debit | ✅ TC-001 |
| Admin credits balance to fix error | Balance Correction — Credit | ✅ TC-002 |
| Reverse posted transaction | Transaction Reversal | ⏭ No manual — see §Out of scope |
| Refund money/credit to user | Refund | ⏭ Partial — game wallet TC-003; payout-fail see §Out of scope |
Note: DB enum UsdWalletTransaction.type remains adjustment / reversal — only the presentation layer changes.
Out of scope — not manually testable on staging
The following scenarios cannot be reproduced in the current QC environment (shop/agent USD withdrawal always auto payout; admin reject pending no longer available):
| Scenario | Reason manual QC skipped | Alternative coverage |
|---|
| Transaction Reversal (admin reject USD withdrawal) | Cannot create manual pending withdrawal; reject blocked when autoPayout: true | Backend unit test usdLedgerDisplayCategoryService; verify on prod if legacy data exists |
| Refund (portal payout fail → USD refund) | Staging skips external payout → completes immediately; requires real gateway failure | Backend unit test; prod monitoring |
Preconditions
| # | Requirement | How to verify |
|---|
| P-1 | Backend dev (or staging) deployed with K260 branch | API ledger row has displayCategory, displayLabel, audit, links |
| P-2 | Admin Portal + @kioskgaming/ui deployed (fix list table TYPE/amount) | Finance correction row shows Balance Correction — Debit, negative amount |
| P-3 | super_admin or finance_admin account | Finance correction, refund game wallet |
| P-4 | Shop/agent has sufficient USD balance for testing | Wallets → USD Wallets |
| P-5 | Environment notes | URL, date, tester, build |
Admin navigation
USD ledger: Sidebar Wallets → USD Wallets → Owner type + Owner → USD wallet transactions table → View opens detail modal.
Credit ledger: Wallets → Credit Wallets → Credit transactions.
Quick API check (optional)
DevTools → GET .../usd-wallets/.../ledger → adjustment row has displayLabel, displayCategory, audit.
TC-K260-001 — Balance Correction — Debit (finance correction) 🆕 NEW
Precondition: Super/finance admin; shop or agent has USD balance ≥ correction amount.
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Open correction modal | Account management → shop/agent → Balance correction (debit) | Modal shows Balance Correction — Debit (not "Adjustment") | |
| 2 | Submit correction | Ticket ID, Reason, small Amount (e.g. $1) → Submit | Balance decreases correctly | |
| 3 | Ledger label | USD Wallets → same owner → newly created row | Balance Correction — Debit; amount -$… (red) | |
| 4 | Detail | View detail row | Correction details: Ticket ID, Reason, Initiated By | |
| 5 | No "Adjustment" | List + detail | No user-facing Adjustment string | |
TC-K260-002 — Balance Correction — Credit (shop CDN credit-adjust) 🆕 NEW
Precondition: Admin has shop credit-adjust permission. Pure USD wallet credit correction out of scope V1.2.0.
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Credit-adjust credit | Shop → credit adjust credit (small amount) + reason | Credit wallet increases | |
| 2 | Credit ledger label | Credit Wallets → shop → adjust row | Balance correction / Balance Correction — Credit — not "Adjustment" | |
| 3 | Debit adjust (if permitted) | Credit adjust debit | Clear debit label | |
TC-K260-003 — Refund (admin refund game wallet) 🆕 NEW
Precondition: Game wallet has refundable transaction.
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Refund transaction | Game Wallets → Refund failed tx + reason | Success | |
| 2 | Table label | Newly refunded row | Refund (not Reversal / Adjustment) | |
| 3 | Filter | Filter direction/type | Option adjustment = Balance correction | |
TC-K260-004 — Legacy row / fallback 🆕 NEW
Precondition: Legacy adjustment row (sparse metadata) if available.
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Legacy adjustment | USD Wallets → old adjustment row | No crash; fallback Credit/Debit by delta — not "Adjustment" | |
| 2 | Empty reason | Detail without reason | No reason recorded. | |
TC-K260-005 — USD Wallet UI (list + detail) 🆕 NEW
Precondition: TC-001 completed (and TC-002 if applicable).
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | List column Type | USD wallet transactions table | Type column = displayLabel | |
| 2 | Detail Correction | View row TC-001 | Section Correction details | |
| 3 | Amount sign | Debit correction row | Balance before > after; amount displays negative | |
TC-K260-006 — CSV export USD ledger 🆕 NEW
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Export | USD Wallets → Export CSV (period containing TC-001) | File OK | |
| 2 | Correction label | CSV correction row | Balance Correction — Debit matches UI | |
| 3 | Raw type | Raw type column (if present) | Still adjustment | |
TC-K260-007 — Other Admin screens 🆕 NEW
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Player wallet tx | Players → transactions | Filter adjustment → Balance correction | |
| 2 | Agent CDN tx | Agents → wallet tx | adjustment → Balance correction | |
| 3 | Finance correction modal | Open debit modal | Balance Correction — Debit | |
| 4 | Game wallet filter | Game wallet filter | adjustment = Balance correction | |
TC-K260-008 — Regression & Acceptance Criteria 🆕 NEW
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | AC-1 — No "Adjustment" | Scan USD/Credit/Game/Player wallet + export | No Adjustment label in-scope | |
| 2 | AC-2 — Credit vs Debit | TC-001 vs TC-002 | Two different labels | |
| 3 | AC-5 — Reason + Initiated By | Detail correction (TC-001) | Reason + Initiated By (or empty state) | |
| 4 | Deposit / withdrawal unchanged | Deposit + withdrawal rows | Deposit / Withdraw unchanged | |
TC-K260-009 — API filter & backward compatibility 🆕 NEW
| # | Description | Steps | Expected Result | Actual Result |
|---|
| 1 | Filter type=adjustment | Filter ledger adjustment | Rows still returned; displayLabel changed | |
| 2 | Filter type=reversal | Filter reversal (if row exists) | Filter OK; label from API/fallback | |
QC sign-off checklist
| Item | Pass? | Notes |
|---|
| TC-K260-001 Balance Correction — Debit | ☐ | |
| TC-K260-002 Balance Correction — Credit | ☐ | |
| TC-K260-003 Game wallet Refund | ☐ | |
| TC-K260-004 Legacy fallback | ☐ | |
| TC-K260-005 USD UI list + detail | ☐ | |
| TC-K260-006 CSV export | ☐ | |
| TC-K260-007 Other admin surfaces | ☐ | |
| TC-K260-008 Regression / AC | ☐ | |
| TC-K260-009 API filter | ☐ | |
| Out of scope: Transaction Reversal / payout Refund | ☐ N/A | Unit test / prod only |
Tester: _______________
Date: _______________
Environment: _______________
Conclusion: ☐ Pass release · ☐ Fail — bug list attached
Bug report notes
- Screenshot list + detail.
- Ledger row id /
transactionId.
- JSON:
type, displayCategory, displayLabel, audit.
- Steps from the test case table.