Skip to main content

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

DateVersionChangeAuthor
2026-06-20v1.0Short QC checklist (T-1 → T-6)
2026-06-20v1.1Expanded to full manual test cases for QC
2026-06-20v1.2Fixed TC-001: shop/agent USD withdrawal is auto payout
2026-06-20v1.3Fixed UI navigation: removed "Activity tab"
2026-06-20v1.4Removed 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:

OperationExpected UI labelManual QC
Admin debits balance to fix errorBalance Correction — Debit✅ TC-001
Admin credits balance to fix errorBalance Correction — Credit✅ TC-002
Reverse posted transactionTransaction Reversal⏭ No manual — see §Out of scope
Refund money/credit to userRefund⏭ 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):

ScenarioReason manual QC skippedAlternative coverage
Transaction Reversal (admin reject USD withdrawal)Cannot create manual pending withdrawal; reject blocked when autoPayout: trueBackend 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 failureBackend unit test; prod monitoring

Preconditions

#RequirementHow to verify
P-1Backend dev (or staging) deployed with K260 branchAPI ledger row has displayCategory, displayLabel, audit, links
P-2Admin Portal + @kioskgaming/ui deployed (fix list table TYPE/amount)Finance correction row shows Balance Correction — Debit, negative amount
P-3super_admin or finance_admin accountFinance correction, refund game wallet
P-4Shop/agent has sufficient USD balance for testingWallets → USD Wallets
P-5Environment notesURL, date, tester, build

Admin navigation

USD ledger: Sidebar Wallets → USD WalletsOwner type + OwnerUSD wallet transactions table → View opens detail modal.

Credit ledger: Wallets → Credit WalletsCredit transactions.

Quick API check (optional)

DevTools → GET .../usd-wallets/.../ledgeradjustment 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.

#DescriptionStepsExpected ResultActual Result
1Open correction modalAccount management → shop/agent → Balance correction (debit)Modal shows Balance Correction — Debit (not "Adjustment")
2Submit correctionTicket ID, Reason, small Amount (e.g. $1) → SubmitBalance decreases correctly
3Ledger labelUSD Wallets → same owner → newly created rowBalance Correction — Debit; amount -$… (red)
4DetailView detail rowCorrection details: Ticket ID, Reason, Initiated By
5No "Adjustment"List + detailNo 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.

#DescriptionStepsExpected ResultActual Result
1Credit-adjust creditShop → credit adjust credit (small amount) + reasonCredit wallet increases
2Credit ledger labelCredit Wallets → shop → adjust rowBalance correction / Balance Correction — Credit — not "Adjustment"
3Debit adjust (if permitted)Credit adjust debitClear debit label

TC-K260-003 — Refund (admin refund game wallet) 🆕 NEW

Precondition: Game wallet has refundable transaction.

#DescriptionStepsExpected ResultActual Result
1Refund transactionGame Wallets → Refund failed tx + reasonSuccess
2Table labelNewly refunded rowRefund (not Reversal / Adjustment)
3FilterFilter direction/typeOption adjustment = Balance correction

TC-K260-004 — Legacy row / fallback 🆕 NEW

Precondition: Legacy adjustment row (sparse metadata) if available.

#DescriptionStepsExpected ResultActual Result
1Legacy adjustmentUSD Wallets → old adjustment rowNo crash; fallback Credit/Debit by delta — not "Adjustment"
2Empty reasonDetail without reasonNo reason recorded.

TC-K260-005 — USD Wallet UI (list + detail) 🆕 NEW

Precondition: TC-001 completed (and TC-002 if applicable).

#DescriptionStepsExpected ResultActual Result
1List column TypeUSD wallet transactions tableType column = displayLabel
2Detail CorrectionView row TC-001Section Correction details
3Amount signDebit correction rowBalance before > after; amount displays negative

TC-K260-006 — CSV export USD ledger 🆕 NEW

#DescriptionStepsExpected ResultActual Result
1ExportUSD WalletsExport CSV (period containing TC-001)File OK
2Correction labelCSV correction rowBalance Correction — Debit matches UI
3Raw typeRaw type column (if present)Still adjustment

TC-K260-007 — Other Admin screens 🆕 NEW

#DescriptionStepsExpected ResultActual Result
1Player wallet txPlayers → transactionsFilter adjustmentBalance correction
2Agent CDN txAgents → wallet txadjustmentBalance correction
3Finance correction modalOpen debit modalBalance Correction — Debit
4Game wallet filterGame wallet filteradjustment = Balance correction

TC-K260-008 — Regression & Acceptance Criteria 🆕 NEW

#DescriptionStepsExpected ResultActual Result
1AC-1 — No "Adjustment"Scan USD/Credit/Game/Player wallet + exportNo Adjustment label in-scope
2AC-2 — Credit vs DebitTC-001 vs TC-002Two different labels
3AC-5 — Reason + Initiated ByDetail correction (TC-001)Reason + Initiated By (or empty state)
4Deposit / withdrawal unchangedDeposit + withdrawal rowsDeposit / Withdraw unchanged

TC-K260-009 — API filter & backward compatibility 🆕 NEW

#DescriptionStepsExpected ResultActual Result
1Filter type=adjustmentFilter ledger adjustmentRows still returned; displayLabel changed
2Filter type=reversalFilter reversal (if row exists)Filter OK; label from API/fallback

QC sign-off checklist

ItemPass?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/AUnit test / prod only

Tester: _______________
Date: _______________
Environment: _______________
Conclusion: ☐ Pass release · ☐ Fail — bug list attached


Bug report notes

  1. Screenshot list + detail.
  2. Ledger row id / transactionId.
  3. JSON: type, displayCategory, displayLabel, audit.
  4. Steps from the test case table.