Checkout test matrix
Which browser and payment method pairs we test, how often, and what each run proves.
Checkout has seven browser targets and six payment methods, which is 42 pairs. We do not run all 42 on every pull request. A pair runs on every PR when it carries more than 5% of checkouts, nightly when it carries more than 1%, and weekly otherwise. Pairs the wallets do not support are marked as not applicable and never counted as a gap.
Assumptions
The matrix
Card is the only method that runs on every PR in every browser. It carries 61% of checkouts and its failure modes differ per browser. Klarna and the gift card run weekly on the low-share browsers. Every cell that says Manual is a pair that Playwright cannot drive: the wallet sheet is a native surface outside the page.
Browser × payment method
| Browser / Method | Card | Apple Pay | Google Pay | PayPal | Klarna | Gift card |
|---|---|---|---|---|---|---|
| Chrome desktop | Every PR | n/a | Nightly | Every PR | Nightly | Nightly |
| Safari desktop | Every PR | Manual | n/a | Nightly | Weekly | Weekly |
| Firefox desktop | Every PR | n/a | n/a | Nightly | Weekly | Weekly |
| Edge desktop | Every PR | n/a | Nightly | Weekly | Weekly | Weekly |
| Safari iOS | Every PR | Manual | n/a | Nightly | Nightly | Weekly |
| Chrome Android | Every PR | n/a | Manual | Nightly | Nightly | Weekly |
| Samsung Internet | Nightly | n/a | Manual | Weekly | Weekly | Weekly |
What each tier proves
The tiers differ in what they mock. A PR run proves the checkout page and our own API; it cannot prove the provider. The nightly run proves the provider integration on the real sandbox, including the 3-D Secure challenge. The weekly run adds the slow paths: a declined card, a Klarna credit refusal, and a gift card with a partial balance.
Test tiers
Browser targets and where they run
Each browser target pins a version range and a runner. Desktop browsers run in Playwright containers. Mobile browsers run on real devices in the lab, because the iOS keyboard and the Android autofill sheet are where mobile-only bugs live.
Browser targets
| Browser | Versions tested | Runner | Share of checkouts |
|---|---|---|---|
| Chrome desktop | Current and current − 1 | Playwright container | 34% |
| Safari desktop | Current (macOS 15) | macOS runner | 9% |
| Firefox desktop | Current and ESR | Playwright container | 4% |
| Edge desktop | Current | Playwright container | 3% |
| Safari iOS | iOS 17 and 18 | iPhone 13 and iPhone 15 in the lab | 31% |
| Chrome Android | Current | Pixel 7 and Galaxy A54 in the lab | 15% |
| Samsung Internet | Current | Galaxy A54 in the lab | 2% |
Share is the 30 days to 12 Sep 2026. A browser that falls under 1% for two quarters leaves the matrix; one that rises over 1% joins at the weekly tier.
The matrix by the numbers
Thirty-one of the 42 pairs are automated. The four manual pairs are the wallets, and the seven not-applicable cells are platform rules. Nightly runtime is the number to watch. It grew 11 minutes this quarter as Klarna pairs moved up a tier. Past 60 minutes, the run no longer finishes before the 03:00 deploy window.