Skip to content

feat(rn-davinci): Support native 2.1 DaVinci extra fields and missing collector types (SDKS-5203) - #68

Open
tsdamas wants to merge 1 commit into
mainfrom
SDKS-5203
Open

feat(rn-davinci): Support native 2.1 DaVinci extra fields and missing collector types (SDKS-5203)#68
tsdamas wants to merge 1 commit into
mainfrom
SDKS-5203

Conversation

@tsdamas

@tsdamas tsdamas commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates the React Native DaVinci bridge to expose collector fields introduced or fixed in native SDK 2.1.0, adds structured validation results, and improves DaVinci client and sample-app support across Android, iOS, and JavaScript.

Changes

  • Expose DaVinci 2.1 collector fields through the public React Native API:
    • PasswordCollector.validation and native password-policy access.
    • LabelCollector.richContent.
    • PhoneNumberCollector.extension, showExtension, and extensionLabel.
    • BooleanCollector validation errors.
  • Add platform-neutral structured validation errors, including required, regex, and password-policy constraints.
  • Capture submitted collector validation before native node transition and expose it through validationErrors, preserving errors when the returned node is an error or failure node.
  • Update Android and iOS bridges to map the new fields, apply phone-number extensions, encode rich content, and retain retryable DaVinci error context.
  • Add and expand Android, iOS, JavaScript, and integration test coverage for field mapping, validation, round-tripping, and node transitions.
  • Add SINGLE_CHECKBOX and READ_ONLY_TEXT handling to PingTestRunner scenarios and wire-format integration tests.
  • Update the sample app to render structured errors, rich label content, and phone-number extensions.
  • Update DaVinci README documentation and native-spec contract coverage.

Scope clarification

Native SDK 2.1.0 already provides the collector types represented by SINGLE_CHECKBOX and READ_ONLY_TEXT; this change completes their React Native test-runner coverage and preserves their existing public support.

Verification

  • Formatting completed
  • Lint executed
  • Packages built
  • Type checking completed
  • JavaScript unit tests executed
  • Android native tests executed
  • iOS native tests executed
  • PingTestRunner integration tests executed
  • Sample-app smoke test completed

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5748d71a-9130-4c3d-b7d3-e419e57466b0


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.

@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.98217% with 105 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.79%. Comparing base (903c408) to head (fcdd7bd).

Files with missing lines Patch % Lines
.../com/pingidentity/rndavinci/RNPingDavinciCommon.kt 0.00% 56 Missing ⚠️
packages/davinci/ios/RNPingDavinciImpl.swift 0.00% 9 Missing ⚠️
packages/davinci/src/davinci.ts 0.00% 8 Missing ⚠️
packages/davinci/ios/RNPingDavinciCommon.swift 89.85% 7 Missing ⚠️
.../ios/Tests/DaVinciCollectorValueApplierTests.swift 75.00% 7 Missing ⚠️
packages/davinci/src/davinciMethods.ts 0.00% 7 Missing ⚠️
...pingidentity/rndavinci/mapper/DaVinciNodeMapper.kt 93.54% 2 Missing ⚠️
...i/ios/Collector/DaVinciCollectorValueApplier.swift 85.71% 2 Missing ⚠️
...s/davinci/ios/Tests/RNPingDavinciCommonTests.swift 99.04% 2 Missing ⚠️
packages/davinci/src/useDavinci.tsx 33.33% 2 Missing ⚠️
... and 3 more

❌ Your project check has failed because the head coverage (72.79%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #68      +/-   ##
============================================
+ Coverage     71.96%   72.79%   +0.83%     
- Complexity      230      238       +8     
============================================
  Files           164      164              
  Lines         20856    21307     +451     
  Branches        748      767      +19     
============================================
+ Hits          15008    15511     +503     
+ Misses         5742     5709      -33     
+ Partials        106       87      -19     
Flag Coverage Δ
android 18.27% <33.70%> (+0.06%) ⬆️
ios 81.78% <94.48%> (+0.33%) ⬆️
javascript 87.65% <10.00%> (+19.28%) ⬆️
Components Coverage Δ
Bridge glue 52.40% <87.32%> (+0.87%) ⬆️
Pure logic 82.01% <94.94%> (+0.50%) ⬆️
Files with missing lines Coverage Δ
...ndavinci/collector/DaVinciCollectorValueApplier.kt 61.95% <100.00%> (+0.41%) ⬆️
...ges/davinci/ios/Tests/DaVinciNodeMapperTests.swift 99.70% <100.00%> (+0.02%) ⬆️
packages/davinci/src/collectorHelpers.ts 92.14% <100.00%> (ø)
.../com/pingidentity/rndavinci/RNPingDavinciModule.kt 0.00% <0.00%> (ø)
...ackages/davinci/ios/Mapper/DaVinciNodeMapper.swift 93.69% <98.11%> (-0.51%) ⬇️
packages/davinci/src/NativeRNPingDavinci.ts 92.00% <0.00%> (ø)
...pingidentity/rndavinci/mapper/DaVinciNodeMapper.kt 76.49% <93.54%> (+3.02%) ⬆️
...i/ios/Collector/DaVinciCollectorValueApplier.swift 92.46% <85.71%> (+1.64%) ⬆️
...s/davinci/ios/Tests/RNPingDavinciCommonTests.swift 95.74% <99.04%> (+0.92%) ⬆️
packages/davinci/src/useDavinci.tsx 80.48% <33.33%> (ø)
... and 6 more

... and 7 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 903c408...fcdd7bd. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://ForgeRock.github.io/ping-react-native-sdk/docs-preview/pr-68/

Built to branch gh-pages at 2026-08-28 15:51 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@tsdamas
tsdamas requested review from pingidentity-gaurav and rodrigoareis and removed request for rodrigoareis August 27, 2026 21:34
@tsdamas tsdamas changed the title chore(rn-davinci): Support native 2.1 DaVinci extra fields and missing collector types (SDKS-5203) feat(rn-davinci): Support native 2.1 DaVinci extra fields and missing collector types (SDKS-5203) Aug 28, 2026
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