Skip to content

feat: Add payment method verticals (8 methods)#1641

Open
bthebladeprimer wants to merge 3 commits into
bn/feature/cc-11-headless-repositoryfrom
bn/feature/cc-12-payment-methods
Open

feat: Add payment method verticals (8 methods)#1641
bthebladeprimer wants to merge 3 commits into
bn/feature/cc-11-headless-repositoryfrom
bn/feature/cc-12-payment-methods

Conversation

@bthebladeprimer
Copy link
Copy Markdown
Contributor

Summary

  • Add payment method implementations for all 8 verticals: Card, PayPal, Apple Pay, Klarna, ACH, Form Redirect, Web Redirect, and QR Code
  • Add PM-specific repository implementations: AchRepositoryImpl, FormRedirectRepositoryImpl, KlarnaRepositoryImpl, PayPalRepositoryImpl, QRCodeRepositoryImpl, WebRedirectRepositoryImpl
  • Add PM-specific interactors: ProcessAchPaymentInteractor, ProcessApplePayPaymentInteractor, ProcessFormRedirectPaymentInteractor, ProcessKlarnaPaymentInteractor, ProcessPayPalPaymentInteractor, ProcessQRCodePaymentInteractor, ProcessWebRedirectPaymentInteractor
  • Add ApplePayRequestBuilder helper for constructing Apple Pay payment requests
  • Add comprehensive test suites for all payment methods with mocks, test data factories, and scope tests

Context

PR 12 of 16 in the CheckoutComponents feature split. Depends on PR 11 (HeadlessRepository implementation).

Notion tracker

Test plan

  • ACH tests — AchPaymentMethodTests, AchRepositoryImplTests, AchStateTests, DefaultAchScopeTests, ProcessAchPaymentInteractorTests
  • Apple Pay tests — ApplePayPaymentMethodTests, ApplePayRequestBuilderTests, ApplePayAuthorizationCoordinatorTests, DefaultApplePayScopeTests, ProcessApplePayPaymentInteractorTests
  • Card tests — CardPaymentMethodTests
  • Form Redirect tests — FormRedirectPaymentMethodTests, FormRedirectRepositoryImplTests, FormRedirectStateTests, DefaultFormRedirectScopeTests, ProcessFormRedirectPaymentInteractorTests
  • Klarna tests — KlarnaPaymentMethodTests, KlarnaRepositoryImplTests, KlarnaRepositoryTests, DefaultKlarnaScopeTests, ProcessKlarnaPaymentInteractorTests, PrimerKlarnaStateTests
  • PayPal tests — PayPalPaymentMethodTests, PayPalRepositoryImplTests, ProcessPayPalPaymentInteractorTests
  • QR Code tests — QRCodePaymentMethodTests, QRCodeRepositoryImplTests, DefaultQRCodeScopeTests, ProcessQRCodePaymentInteractorTests
  • Web Redirect tests — WebRedirectPaymentMethodTests, WebRedirectRepositoryTests, DefaultWebRedirectScopeTests, ProcessWebRedirectPaymentInteractorTests
  • PaymentMethodRegistryTests — verify payment method registration
  • InvokeBeforePaymentCreateTests, VaultedPaymentMethodDisplayDataTests, VaultedCardCVVInputTests, SecureTextFieldTests

@bthebladeprimer bthebladeprimer requested a review from a team as a code owner March 26, 2026 15:52
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 26, 2026

Warnings
⚠️ > Pull Request size seems relatively large. If this Pull Request contains multiple changes, please split each into separate PR will helps faster, easier review.

Generated by 🚫 Danger Swift against ddfc7fb

@bthebladeprimer bthebladeprimer self-assigned this Mar 26, 2026
@bthebladeprimer bthebladeprimer marked this pull request as draft March 26, 2026 16:32
@bthebladeprimer bthebladeprimer force-pushed the bn/feature/cc-11-headless-repository branch from 85a6802 to 4bcc4a5 Compare March 31, 2026 14:07
@bthebladeprimer bthebladeprimer force-pushed the bn/feature/cc-12-payment-methods branch from 6331e36 to 0ca46cf Compare March 31, 2026 14:07
@bthebladeprimer bthebladeprimer marked this pull request as ready for review April 3, 2026 18:09
@bthebladeprimer bthebladeprimer force-pushed the bn/feature/cc-11-headless-repository branch from 59af837 to 2450a3c Compare April 15, 2026 13:03
@bthebladeprimer bthebladeprimer requested a review from a team as a code owner April 15, 2026 13:03
The async Task in DefaultCheckoutScope.init() populates the scope cache
after init returns. Tests calling createView() immediately get nil.
Pre-populate the cache with a DefaultApplePayScope in the test helper.
@bthebladeprimer bthebladeprimer force-pushed the bn/feature/cc-12-payment-methods branch from cf11538 to ddfc7fb Compare April 15, 2026 13:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant