Browse documentation
DOCS/Validation & testing

Validation

Use Node.js 24+ and the repository’s declared pnpm version when validating a release candidate.

pnpm install --frozen-lockfile
pnpm check
pnpm build
pnpm test
pnpm pack:check

pnpm db:check detects drift between the internal DB development source and shipped CLI templates. pnpm build regenerates DB templates before compiling both packages.

The automated tests cover:

Live network database tests

Four network success-path tests are opt-in because they require disposable external services. The SQLite success-path test always uses a real SQLite database.

Copy:

tests/.env.example

to an untracked:

tests/.env

and configure disposable services. Then run:

pnpm build
node --env-file=tests/.env --test tests/database.test.mjs

The live network tests verify real connect, write, read, delete, health and close behavior for MongoDB, PostgreSQL, MySQL and MariaDB. Use credentials that are allowed to create and remove test data.

A skipped opt-in test is not evidence of successful live integration.

0.2.0 release-candidate live validation

The 0.2.0 DB release candidate was additionally validated on 2026-09-20 in a clean consumer project created from packed @exetjs/core@0.2.0 and @exetjs/cli@0.2.0 tarballs.

Validated environment:

Node.js 24.21.0
pnpm 12.4.2

Validated real services:

AdapterServiceResult
db-sqlitebetter-sqlite3 file DBPASS
db-mongoMongoDB 8 containerPASS
db-postgresPostgreSQL 17 containerPASS
db-mysqlMySQL 8.4 containerPASS
db-mariadbMariaDB 11.4 containerPASS

The clean consumer validation covered:

CLI 0.2.0 from packed tarball
Core 0.2.0 from packed tarball
exet list
exet doctor
TypeScript check
build
module installation
real DB connect/write/read/delete/health/close
SQLite reconnect persistence
all five DB modules registered in one ExetJS application
GET /api/v1/health -> HTTP 200
graceful shutdown with resources released

This validation record supplements the automated suite. It does not replace future CI or provider-version testing.

Package checks

The packed CLI must contain generated templates and their env examples. Neither npm package may contain:

Only the selected module manifest adds its native driver to a generated application.

Clean consumer release trial

Before publication, validate the actual packed artifacts rather than only workspace links:

  1. pack Core and CLI;
  2. create a clean temp directory outside the repository;
  3. install the CLI tarball;
  4. generate a project without fetching unpublished versions from npm;
  5. replace Core/CLI registry versions with the packed tarballs;
  6. run exet doctor, check and build;
  7. install the target module from the packed CLI;
  8. configure disposable runtime services;
  9. start the application and exercise real runtime behavior;
  10. verify graceful shutdown;
  11. run the final repository pnpm release:check before publishing.

The release process should use the package versions and Node baseline declared by the project rather than relying on unrelated system-global tools.