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.
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 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.