Skip to content

docs(swift-example-app): add MANUAL tier to iOS test plan#3895

Merged
QuantumExplorer merged 1 commit into
v3.1-devfrom
claude/test-plan-manual-category
Jun 14, 2026
Merged

docs(swift-example-app): add MANUAL tier to iOS test plan#3895
QuantumExplorer merged 1 commit into
v3.1-devfrom
claude/test-plan-manual-category

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented Jun 14, 2026

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

CORE-08 (QR scan recipient) is implemented and reachable in the app UI, but it cannot be exercised in the iOS simulator (no camera). It was previously tiered Essential and counted as an automatable pass/fail, which is misleading — an automated QA run can neither drive it nor should it fail it. "Can't be automated" is a selection concern, so it belongs on the Tier axis.

What was done?

Added Manual as a Tier value (peer of Essential / Common / Thorough / Uncommon) in packages/swift-sdk/SwiftExampleApp/TEST_PLAN.md:

  • Tier grammar + legend: Manual = not a frequency, a special bucket for implemented features that can't be driven in the simulator and need a human on a physical device (camera, biometrics, NFC). The automated agent skips and flags them, never fails them. Select with Tier=Manual.
  • The automatable-now rule now requires Tier ≠ Manual (in addition to Status /🧪/⚠️).
  • CORE-08 set to Tier=Manual (Status stays — the scanner is in the UI), staying in its §4.1 Core home.
  • Summary matrix: Essential 22→21, Core layer 18→17, and a Manual tier row (1 — CORE-08, marked not-automatable).
  • Added a "list the manual tests" worked example (Tier=ManualCORE-08).

No new status symbol and no separate section — Manual is just another tier, so it filters and reports like the others.

How Has This Been Tested?

Documentation only. Verified CORE-08 is a single Tier=Manual row in §4.1, Manual appears in the tier grammar/legend/matrix, the automatable counts exclude it, and no stray status symbol or orphan section remains.

Breaking Changes

None. Documentation only.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated the iOS test plan to introduce a new Tier=Manual category.
    • Clarified how “automatable” tests are determined, and that manual-only coverage requires a physical device.
    • Updated the legend and worked examples, including adjusting the CORE-08 QR scan recipient scenario to manual testing.
    • Recalculated summary counts to reflect the new manual classification and updated automation/skip behavior.

@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

TEST_PLAN.md is updated to introduce a new Tier=Manual category for tests requiring a physical device. The selection grammar is refined to define automatable tests as requiring both an automatable Status and Tier ≠ Manual. CORE-08 (QR scan recipient) is reclassified from Essential to Manual with updated notes; the Legend clarifies Manual tests require physical devices; selection examples distinguish Essential tests (CORE-01..07) from manual tests (CORE-08); and the Summary matrix is recalculated to reflect automatable counts under the new classification rules.

Changes

TEST_PLAN manual test categorization

Layer / File(s) Summary
Tier=Manual grammar, legend, and selection examples
packages/swift-sdk/SwiftExampleApp/TEST_PLAN.md
Selection grammar updated to add Tier=Manual and define automatable as Status ∈ {✅, 🧪, ⚠️} and Tier ≠ Manual; Legend extended to document Manual as requiring a physical device; "test all Essential" example updated to list CORE-01..07 and separate "list the manual tests" example selects Tier=Manual for CORE-08.
CORE-08 reclassification and summary matrix updates
packages/swift-sdk/SwiftExampleApp/TEST_PLAN.md
CORE-08 changed from Tier=Essential to Tier=Manual with notes explaining QR scanning cannot be automated in the simulator; Summary matrix "By tier" section adds a Manual row (count 1, not automatable); "By layer (automatable only)" section recounts eligible tests with Core automatable reduced to 17.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • dashpay/platform#3888: Modifies the same TEST_PLAN.md file with updates to Tier legend/selection rules and Summary matrix count recalculation for different test cases.
  • dashpay/platform#3887: Directly modifies packages/swift-sdk/SwiftExampleApp/TEST_PLAN.md introducing the Tier=Manual category and related tier/status selection grammar that this PR also references.

Suggested reviewers

  • shumkov
  • llbartekll
  • ZocoLini

Poem

🐇 Hop hop, the QR code must wait,
No simulator can scan its gate!
CORE-08 finds a new home today,
In Tier=Manual, the physical way.
With device in hand, the test rings true —
Some journeys QR, only humans can do! 📱

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(swift-example-app): add MANUAL tier to iOS test plan' accurately captures the main change—adding a new MANUAL tier classification to the iOS test plan documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/test-plan-manual-category

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

…8 to it

CORE-08 (QR scan recipient) is implemented and reachable in the app UI
(Status ✅), but it can't be automated in the simulator (no camera).
That's a selection concern, not an implementation one — so add `Manual`
as a Tier value (peer of Essential / Common / Thorough / Uncommon) and
set CORE-08 to Tier=Manual instead of Essential.

The automated QA agent skips + flags Tier=Manual rows for a human on a
physical device, never failing them. Updated the selection grammar, the
Tier legend, the summary matrix (Essential 22→21 + a Manual tier row,
Core layer 18→17), and added a "list the manual tests" worked example.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@QuantumExplorer QuantumExplorer force-pushed the claude/test-plan-manual-category branch from 8b34e05 to 27b420e Compare June 14, 2026 09:41
@QuantumExplorer QuantumExplorer changed the title docs(swift-example-app): add MANUAL test category to iOS test plan docs(swift-example-app): add MANUAL tier to iOS test plan Jun 14, 2026
@QuantumExplorer QuantumExplorer merged commit e90cbf2 into v3.1-dev Jun 14, 2026
6 of 7 checks passed
@QuantumExplorer QuantumExplorer deleted the claude/test-plan-manual-category branch June 14, 2026 09:44
@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

✅ DashSDKFFI.xcframework built for this PR.

SwiftPM (host the zip at a stable URL, then use):

.binaryTarget(
  name: "DashSDKFFI",
  url: "https://your.cdn.example/DashSDKFFI.xcframework.zip",
  checksum: "b26fee37c56c588e3c9b2f768f167dda38f1a9c5d6becc9e2657e15e3b1f4a45"
)

Xcode manual integration:

  • Download 'DashSDKFFI.xcframework' artifact from the run link above.
  • Drag it into your app target (Frameworks, Libraries & Embedded Content) and set Embed & Sign.
  • If using the Swift wrapper package, point its binaryTarget to the xcframework location or add the package and place the xcframework at the expected path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant