Skip to content

feature/INT-1724 - CashApp payment method integration - #269

Merged
david-ruiz-cko merged 3 commits into
masterfrom
feature/INT-1724
Oct 8, 2026
Merged

david-ruiz-cko merged 3 commits into
masterfrom
feature/INT-1724

Conversation

@david-ruiz-cko

Copy link
Copy Markdown
Contributor

This pull request adds comprehensive support and tests for Cash App Pay as a payment method in the payment setups API. It introduces new tests to verify correct marshalling, API request/response handling, and round-trip serialization for Cash App fields, as well as for extended customer device and identifier fields. These changes ensure the SDK handles Cash App Pay and related customer/device data correctly in both requests and responses.

Cash App Pay support and tests:

  • Added tests to verify that PaymentSetupRequest and PaymentSetupResponse correctly handle the cashapp payment method, including all expected fields and proper wire keys, as well as device and customer profile sharing fields.
  • Added a test to ensure that the ConfirmPaymentSetup API correctly handles Cash App Pay, including expected action and redirect URL fields.
  • Added round-trip serialization/deserialization tests for CashAppPaymentMethod to ensure all properties are preserved.

Customer and device field support:

  • Added tests to verify that device fields (locale, fingerprint, IP addresses, client, OS) and customer identifiers (ID, country, tax number) are correctly echoed in PaymentSetupRequest and PaymentSetupResponse. [1] [2]
  • Added tests for the marshalling of device client and OS values, and for handling all customer properties according to the public API schema and swagger examples.

Integration tests:

  • Added integration tests for creating payment setups with Cash App Pay, device fields, and customer identifiers, ensuring that the API echoes them back as expected.

@david-ruiz-cko
david-ruiz-cko requested a review from a team October 7, 2026 14:48
@agent-wall-e

agent-wall-e Bot commented Oct 7, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • exceeds_bounded_scope:2078>250

Operational gates

  • ✅ jira_ticket (INT-1724)
  • ✅ independent_review

Files analysed: 4


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 7, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
exceeds_bounded_scope — 2078>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

🟢 Advisory review: Looks good to me

This PR still needs a human approval — wall-e cannot auto-approve it. For what it's worth, I read the diff and found nothing I'd block on.

Adds CashApp payment method support to the payment setups SDK, including new types, JSON wire-key validation, unit tests, and integration tests. The diff is internally consistent and the implementation matches the stated intent.

What I checked

  • The comment update in client.go correctly adds 'cashapp' as an example payment method name.
  • The CashAppActionTypeRedirect constant referenced in TestConfirmPaymentSetup_WithCashApp is not visible in the truncated diff, but the test compiles against it so it must exist; no concern unless the reviewer sees it missing.
  • The integration test TestCreatePaymentSetup_WithCustomerIdentifiers_ShouldEchoThem sends a hardcoded customer ID cus_123456789 and asserts the API echoes it back verbatim — whether the sandbox actually echoes arbitrary customer IDs is an API behaviour assumption worth confirming, but this is a test-only risk.
  • The integration test TestCreatePaymentSetup_WithDeviceFields_ShouldEchoThem uses pointer equality (assert.Equal(t, device, response.Customer.Device)) which does deep equality in Go testify, so this is correct.
  • The t.Skip guard in TestCreatePaymentSetup_WithCashApp_ShouldReturnCashAppDetails gracefully handles the case where Cash App is not enabled on the sandbox channel — good defensive practice.
  • containsString is a local helper that duplicates what slices.Contains or a simple loop elsewhere could provide, but this is a minor duplication concern, not a bug.
  • The JSON wire key cashapp (no underscore) is explicitly validated in the unit test, which is the most important correctness property for this integration — this is verified correctly.

⚠️ The diff was too large to read in full, so this review covers only part of the change.


This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02

@agent-wall-e

agent-wall-e Bot commented Oct 7, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • exceeds_bounded_scope:2090>250

Operational gates

  • ✅ jira_ticket (INT-1724)
  • ✅ independent_review

Files analysed: 5


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 7, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
exceeds_bounded_scope — 2090>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Oct 8, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • exceeds_bounded_scope:2038>250

Operational gates

  • ✅ jira_ticket (INT-1724)
  • ✅ independent_review

Files analysed: 5


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 8, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
exceeds_bounded_scope — 2038>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Oct 8, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • exceeds_bounded_scope:2038>250

Operational gates

  • ✅ jira_ticket (INT-1724)
  • ✅ independent_review

Files analysed: 5


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 8, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
exceeds_bounded_scope — 2038>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@sonarqubecloud

sonarqubecloud Bot commented Oct 8, 2026

Copy link
Copy Markdown

@david-ruiz-cko
david-ruiz-cko merged commit 00f4aae into master Oct 8, 2026
4 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the feature/INT-1724 branch October 8, 2026 14:28
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.

2 participants