Testing and compatibility evidence
MongoDB behavior is the compatibility target. Mingo supplies useful MIT-licensed inputs and a secondary comparison; it is not the specification. Passing tests and line coverage measure different things from implemented operator support.
Everyday checks
npm test runs compiler, storage, driver, adapter, captured-reference, and explicit rejection tests. test:sharedb runs the unmodified official ShareDB database/client harness. test:coverage combines those suites and measures all packages/**/src/**/*.js, including nested drivers. Native C coverage and actual browser execution are separate.
Tests requiring an optional extension or a live MongoDB server skip explicitly when it is absent. A skip does not certify that environment.
Choose the relevant suite
For example, node --test test/indexing.test.js test/storage-format.test.js runs only those suites.
Live MongoDB comparisons
Use a disposable MongoDB server that you control:
Or provide an existing mongod executable:
The runner downloads no binary. It binds to localhost, uses temporary data, and shuts down normally. The suites create uniquely named databases and drop those test databases during cleanup. A supplied but unreachable URI is a failure, not a skip.
Set MONGODB_REQUIRE_VERSION to the release line you intend to certify. For example:
Do not equate a passing captured MongoDB 8.0 reference with a live run on another version.
Mongo driver API and sessions
The facade has separate public-surface and lifecycle regression tests in
test/mongodb-*.test.js. test/mongodb-database.test.js covers the single-database contract, shared core collections, separate file isolation, nested aggregation sources, and preservation of ShareDB/SQL tables when dropping document collections. A standalone live comparison covers cursor results,
bulk errors, partial writes, compounds, and indexes. Session transaction
comparisons use an explicitly supplied local binary and an isolated replica set:
The runner creates temporary data, initializes its own single-node replica set, waits for primary election, runs six transaction comparisons, and removes its data on shutdown. It refuses an occupied port before connecting. Hosted CI runs and passes these comparisons on pinned MongoDB 8.0.29 and 8.3.8 binaries. The development container only ran 8.0.29 because its environment rejected 8.3's getifaddrs operation.
For pinned local framework patches and the actual provider fixture:
The framework guide lists tested boundaries, exact published packages, patch provenance, and the remaining complete-app HTTP checks.
Optional native regex
On Ubuntu, install a C compiler and PCRE2 development headers, then build the extension:
Portable regex must continue to work without this extension. See the regex reference.
Python SQLite cross-check
The numeric suite replays 98 generated SQL probes and a deterministic set of canonical-key probes through Python SQLite. Exact numeric text comparison requires SQLite 3.53+; older builds have different conversion behavior. CI compiles a test-only SQLite library from the locked better-sqlite3 amalgamation and sets SILT_REQUIRE_PYTHON_SQLITE=1, so this check cannot silently skip.
On Linux, reproduce that environment with:
This is test infrastructure; applications need no custom SQLite build. The numeric precision page describes the separate limitations observed in Expo SQLite.
Teamplay and Expo
Teamplay setup installs an isolated, pinned upstream checkout. Its matrix exercises the same application over local and WebSocket ShareDB connections. Expo dependencies are isolated under integration/expo; the browser runner executes the actual SQLite WASM runtime and the Teamplay app. See Teamplay and Expo for prerequisites and ownership rules.
The web/iOS/Android export check generates bundles and Hermes bytecode. It does not execute an iOS or Android application on a device or emulator.
Recorded evidence
The concurrency and Mongo API iteration on 2026-09-06 passed hosted CI on
commit 31d9f19:
- MongoDB 8.0.29 and 8.3.8: 941 query/pipeline/update/API tests and six replica-set transaction comparisons per version, with zero failures or skips.
- Separate JSON/ShareDB coverage and native-regex jobs passed, including the required Python SQLite numeric cross-check.
- Local coverage: 1,645 tests passed, 14 live tests skipped without a server URI, and 339 upstream ShareDB tests passed; 96.52% runtime line coverage.
- Actual Expo web: 135 checks passed, including SQLite TEMP spooling to OPFS. Native bundles passed; iOS/Android execution remains untested.
- The 12-case Teamplay matrix, patched published framework provider integration, and isolated installation of packed npm artifacts passed.
The iteration report records commands, boundaries, and benchmark links. The complete StartupJS HTTP/app flow remains untested. These suites overlap; their counts are not operator counts.
Earlier implementation baseline
The implementation verification on 2026-09-05 recorded the following. These suites overlap and must not be added together as a count of distinct supported operations.
Hosted CI subsequently passed on commit 550ab8e, including the required Python cross-check and separate native/non-native jobs. Current results are available in GitHub Actions.
MongoDB 8.3.8 could not initialize in the original execution environment and is not certified by those results. Full Mingo feature/coverage parity has also not been reached. Review the compatibility matrix before interpreting totals.
Historical verification logs retain the original environment and measurements. They are evidence from that run, not continuously updated release claims.
Fixture provenance and regeneration
test/fixtures/ holds original cases and MongoDB-captured expected values, including inputs derived from Mingo 7.2.4 under MIT. Imported cases retain source identifiers and MINGO-LICENSE. MongoDB server-source tests were not copied wholesale.
Inventories and audit summaries live under internal/audits/. The importer executes trusted upstream fixture modules; its VM timeout is not a security boundary. Review changed expected values and support classifications. Passing an explicit unsupported-operation rejection test does not mean the operation is implemented, and matching an error does not promise MongoDB's exact error code or wording.