Whether this goes into a testing guide or just guides how the feature is tested on PRs and in beta, here are some scenarios we can consider:
- Full refund (everything in the order is refunded, including shipping)
- Everything refunded except shipping (all items in the order are refunded, but shipping is not refunded)
- Partial refund (some but not all items in the order are refunded)
- Shipping refund (only shipping is refunded)
- Partial refund followed by a full refund
And some outcomes to pay attention to:
- A fully refunded order should get the
Refunded status.
- I shouldn't be able to refund an unpaid order (
Pending payment status).
- After a refund, the order details should show remaining products in the order, a Refunded Products section for any refunded products, and a refund line item in the Payment section.
- Tapping the refund line item in the Payment section should open a Refund Details screen with appropriate details (refunded products, refunded shipping, refund total, refund method, and refund reason if any was added during the refund).
- After a refund, while fulfilling an order the fulfillment screen should only show remaining products in the order.
- The "Issue Refund" option should remain if (and only if) more can be refunded.
- The option to fulfill the order should remain if (and only if) there are still items in the order.
- Any changes made in the app should be reflected remotely.