test: harden fix-wave oracle ownership - #1847
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe change adds focused join and collation oracle coverage, removes overlapping join tests, and updates package scripts and contributor documentation for oracle ownership and execution. ChangesOracle coverage consolidation
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Other Merge Risk: ⚪ Minimal · up to This PR changes regression coverage, test commands, and documentation; no current merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 2 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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. Comment |
More templates
@tanstack/angular-db
@tanstack/browser-db-sqlite-persistence
@tanstack/capacitor-db-sqlite-persistence
@tanstack/cloudflare-durable-objects-db-sqlite-persistence
@tanstack/db
@tanstack/db-ivm
@tanstack/db-sqlite-persistence-core
@tanstack/electric-db-collection
@tanstack/electron-db-sqlite-persistence
@tanstack/expo-db-sqlite-persistence
@tanstack/node-db-sqlite-persistence
@tanstack/offline-transactions
@tanstack/powersync-db-collection
@tanstack/query-db-collection
@tanstack/react-db
@tanstack/react-native-db-sqlite-persistence
@tanstack/react-router-with-db
@tanstack/rxdb-db-collection
@tanstack/solid-db
@tanstack/svelte-db
@tanstack/tauri-db-sqlite-persistence
@tanstack/trailbase-db-collection
@tanstack/vue-db
commit: |
|
Size Change: 0 B Total Size: 165 kB ℹ️ View Unchanged
|
|
Size Change: 0 B Total Size: 7.34 kB ℹ️ View Unchanged
|
Summary
Moves the permanent regression laws from PRs #1833 and #1834 into their established independent oracle owners, registers those owners in the documented campaigns, and records the correct authority for the rest of the recent fix wave. There are no runtime, API, dependency, or shipped-artifact changes.
Root cause
The recent fixes carried good same-path regression evidence, but some of that evidence lived in broad conventional suites rather than the independent model/property owners responsible for the underlying ordering and equality laws. One receiving owner was also absent from the focused DB oracle campaign, and PowerSync had no focused campaign entry point despite already having a real-provider correctness oracle.
Approach
item2/item10numeric-versus-lexical disagreement, provider request propagation, and explicit scan/eager-index path reach.@tanstack/db'stest:oraclescampaign and expose the existing PowerSync correctness owner through its owntest:oraclescommand.Key invariants
main.Non-goals
Trade-offs
The equality matrix makes the cold-join owner larger, but keeps the law under one existing independent authority and removes a larger duplicate block from the broad join suite. PowerSync remains a real SDK/SQLite oracle rather than being replaced by a portable synthetic fixture.
Verification
Historical RED evidence:
8809ca14…: both scan and eager paths returneditem10instead ofitem2; the exact own-key compare-options assertion also failed.b4494fd3…: all eight original equality-domain variants failed before the fix.873e3ec9…: expecting the missing duplicate-null pair produced two deterministic failures, one in each scan/eager mode.Current GREEN evidence:
git diff --checkpassed./docs; this branch adds none.Shipped-weight proof:
@tanstack/db: 358 JS/declaration artifacts and 2,349,100 bytes on both base and branch; dist trees identical.+22/-2, manifests+3/-2, tests+592/-517; nosrc, dist, lockfile, dependency, or changeset changes.Files changed
docs/contributing/oracle-coverage.md: records fix-wave authority, focused campaigns, and Electric's real-provider prerequisites.packages/db/package.json: registers the cold-join owner.packages/db/tests/query/pagination-oracle.property.test.ts: receives fix(db): preserve default locale collation options #1833's permanent ordering law.packages/db/tests/query/cold-join-reconciliation-oracle.test.ts: receives fix(db): align join keys with equality identity #1834's permanent equality law, including duplicate same-side null multiplicity through lifecycle transitions.packages/db/tests/collection-auto-index.test.tsandpackages/db/tests/query/join.test.ts: delete losslessly duplicated regressions.packages/powersync-db-collection/package.json: exposes the existing real-provider oracle campaign.Related: #1831, #1832, #1833, #1834, #1835, #1842
Summary by CodeRabbit
Documentation
Tests