Skip to content

Add comprehensive SalesforceReact library documentation#2893

Open
wmathurin wants to merge 2 commits into
forcedotcom:devfrom
wmathurin:rn-docs
Open

Add comprehensive SalesforceReact library documentation#2893
wmathurin wants to merge 2 commits into
forcedotcom:devfrom
wmathurin:rn-docs

Conversation

@wmathurin
Copy link
Copy Markdown
Contributor

Summary

Adds comprehensive in-repo documentation for the libs/SalesforceReact library: overview, architecture, API reference, and the actual test infrastructure under libs/test/SalesforceReactTest/.

What's new under docs/salesforcereact/

  • README.md — Library overview, dependency chain (SalesforceReact → MobileSync → SmartStore → SalesforceSDK → SalesforceAnalytics), getting-started examples
  • ARCHITECTURE.md — Bridge pattern, class hierarchy (with SalesforceReactActivity correctly marked <<abstract>>), data flow, with Mermaid diagrams
  • API_REFERENCE.md — Complete API documentation for the bridge modules (SalesforceOauthReactBridge, SalesforceNetReactBridge, SmartStoreReactBridge, MobileSyncReactBridge) plus ReactBridgeHelper, SalesforceReactSDKManager, and SalesforceReactActivity
  • TESTING.md — Documents the actual libs/test/SalesforceReactTest/ setup: parameterized JUnit + ReactTestActivity + SalesforceTestBridge, real test classes (ReactOAuthTest, ReactNetTest, ReactSmartStoreTest, ReactMobileSyncTest, ReactHarnessTest)

Accuracy review

All docs were reviewed against the code on this branch:

  • Dependency chain matches actual build.gradle.kts (api dependency on :libs:MobileSync)
  • SalesforceReactActivity documented as abstract (matches public abstract class SalesforceReactActivity)
  • Bridge module count clarified: 4 @ReactMethod-bearing modules + 1 utility (ReactBridgeHelper)
  • JS examples use actual callback-based API (e.g. oauth.authenticate(success, error))
  • TESTING.md replaced earlier draft that incorrectly claimed no test suite existed

Notes

  • Files are still Java today; per project standards new code should be Kotlin and a Kotlin migration is planned. Documentation calls this out where relevant.
  • The react-android:0.79.3 ↔ JS-side react-native:0.81.5 version gap is also noted in README.

Test plan

  • Render docs on GitHub and verify Mermaid diagrams display correctly
  • Cross-check API documentation against libs/SalesforceReact/src/com/salesforce/androidsdk/reactnative/
  • Verify TESTING.md run instructions against ./gradlew :libs:SalesforceReact:connectedAndroidTest

wmathurin added 2 commits May 18, 2026 17:05
- Created docs/salesforcereact/ with complete documentation
- README.md: Overview, features, quick start
- ARCHITECTURE.md: Bridge pattern, class hierarchy, data flow
- API_REFERENCE.md: Complete API docs for all bridge classes
- TESTING.md: Testing guide with examples and patterns

Covers Android bridge implementation for React Native integration.
Fixes identified during documentation review:

TESTING.md (rewritten):
- Removed false claim that "library does not have a dedicated test suite"
- Documented actual tests in libs/test/SalesforceReactTest/
- Listed actual test files: ReactOAuthTest, ReactNetTest, ReactSmartStoreTest,
  ReactMobileSyncTest, ReactHarnessTest
- Documented actual test pattern (parameterized JUnit + ReactTestActivity +
  SalesforceTestBridge)
- Removed fabricated unit test examples that didn't match real code
- Removed invented dependency list (Mockito, etc.)
- Added accurate test execution flow and architecture diagram

README.md:
- Fixed dependency chain to match reality (api dependency on MobileSync,
  transitively pulls SmartStore -> SalesforceSDK -> SalesforceAnalytics)
- Added note about React Native version (currently 0.79.3, alignment to
  0.81.5 planned)
- Added note about Java -> Kotlin migration plan
- Replaced Promise-based JS examples with actual callback-based API
- Added clarification that fifth file (ReactBridgeHelper) is utility,
  not @ReactMethod-bearing bridge

ARCHITECTURE.md:
- Marked SalesforceReactActivity as abstract in class diagram (matches
  actual code: public abstract class SalesforceReactActivity)
@github-actions
Copy link
Copy Markdown

1 Warning
⚠️ Big PR, try to keep changes smaller if you can.

Generated by 🚫 Danger

@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.13%. Comparing base (81b8c81) to head (2601216).
⚠️ Report is 11 commits behind head on dev.

Additional details and impacted files
@@             Coverage Diff              @@
##                dev    #2893      +/-   ##
============================================
- Coverage     55.16%   55.13%   -0.03%     
+ Complexity     2508     2504       -4     
============================================
  Files           226      226              
  Lines         17781    17781              
  Branches       2328     2328              
============================================
- Hits           9809     9804       -5     
- Misses         6967     6968       +1     
- Partials       1005     1009       +4     
Components Coverage Δ
Analytics 48.71% <ø> (ø)
SalesforceSDK 41.85% <ø> (-0.06%) ⬇️
Hybrid 59.30% <ø> (ø)
SmartStore 78.22% <ø> (ø)
MobileSync 82.12% <ø> (ø)
React 51.50% <ø> (ø)
see 2 files with indirect coverage changes
🚀 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.

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