Claim

Prove WhatYou Build

Every pull request leaves a test case your QA team can run without calling the developer.

Free for small teams. No card required.

Retry failed card charges #482Wants to merge 3 commits into staging from feat/card-retry
CI / test Successful in 2m 14sDetails
lint Successful in 31sDetails
Provaly / Documentation Documentation pendingDocumented ✓Details
app.provaly.io/gate/482

Given

A team that ships every week.

  1. (i)Nobody can say what is in staging without asking a developer.
  2. (ii)QA learns what to test on a call, and the call leaves no record.
  3. (iii)When someone leaves, the steps they always tested by hand leave with them.

Proof

From a pull request to a test case anyone can run.

1

A pull request opens. Provaly asks for the brief.

Provaly adds one check to the pull request and says plainly what is missing. You choose whether it only flags the pull request or blocks the merge.

Check output#482
Documentation pending

This PR's feature brief hasn't been written yet. Document it in Provaly (takes under 3 minutes): https://app.provaly.io/gate/482. Gate mode is flag-only — merging is not blocked.

2

The author says what it does, in their own words.

What it does, how to use it, the edge cases. Rough notes are fine. Provaly can turn them into test conditions, and nothing is saved until the author accepts it.

BriefDraft
What it does
Retries a failed card charge automatically before asking the customer to re-enter payment details.
Edge cases
A second manual retry while one is already queued is rejected.
4 test conditionsSuggested with AI
BoundaryCart total sits exactly at the retry limit. One more attempt is still queued.
PermissionA non-owner tries a manual retry. It is rejected with a permission error.
StateA retry is attempted after the order was cancelled. No charge is made.
Error guessingThe gateway times out mid-retry. The order stays in retrying and tries again.
Accept allReview one by one

3

It becomes a test case a tester can run.

Preconditions, ordered steps, test data and the expected result of every step. A tester runs it without a call and without opening the code.

Test caseCheckout · Payments
TC-1

Retry a failed card charge

Priority highHappy pathCovers C1, C4, C8
Objective
Confirm a declined charge is retried automatically and only ever charges once.
Preconditions
An order exists with a card that declines on first charge and succeeds on retry.
#ActionTest dataExpected result
1Submit an order with a card that will decline once.4000 0000 0000 0002The charge fails and the order enters retrying state.
2Wait for the automatic retry to fire.NoneA second charge attempt is made within 5 minutes.
3Confirm the retry succeeds.Same card, succeeds on retryThe order status changes to paid.
4Check the customer's receipt.NoneThe receipt lists a single successful charge, not two.
5Check the audit trail.NoneExactly one successful payment record exists for the order.

4

The check passes. The registry records where it is.

Publish the brief and the check passes. Every feature shows which environments it has reached and whether it is ready to test.

Provaly / DocumentationDocumented ✓
FeatureDevelopmentStagingProductionState
Retry failed card chargesTest-ready
Export usage reportTests pending
Warn before session timeoutDraft

5

QA gets the cases, and never your code.

Export a whole project in the format your QA tool imports, or give an outside QA firm a read-only view of published work. Provaly's GitHub App cannot read your code, so neither can they.

ExportProject: Checkout
  • checkout-testrail.csvTestRail
  • checkout-zephyr-scale.csvZephyr Scale
  • checkout-xray.csvXray
  • checkout.featureGherkin
Northwind QA External · read-only

Sees published briefs and test cases. Never sees drafts, code, or repository details.

Start with your next pull request.

Connect GitHub, or start without it. Free for small teams, with no card required.