Tests that exist but are skipped, and why. Each is skipped rather than
asserted-to-pass so it cannot mask a real defect.Unfinished agent-written tests (2026-09-06)#
Eleven tests were written during a coverage push whose authoring agents were cut
off mid-file by a rate limit. Their expectations were never reconciled against
actual behaviour, so it is unknown whether each failure is a wrong expectation or
a real bug. They are marked it.skip with an UNFINISHED: comment at the call
site.| File | Skipped | What to check |
|---|
tests/dialects/duckdb-builders.test.ts | 3 | [model, field] order pairs; dropPartition() child-table + metadata cleanup; whether RLS/security policies throw |
tests/dialects/postgres-sql-builders.test.ts | 1 | createSequence schema-qualification and option ordering |
tests/cli-io-prompt-keychain.test.ts | 7 | keychain backend selection (security vs secret-tool) — likely environment-dependent spawnSync stubbing rather than a product bug |
To resolve one: run it, decide whether the expectation or the code is wrong,
then either fix the expectation or file the bug and keep it skipped with a
// BUG: note. Do not simply rewrite the assertion to match current output —
that is how a silent defect gets frozen in.One test from the same batch was resolved: trino-builders.test.ts expected
CREATE TABLE … "day" DATE from a column declared { type: 'DATEONLY' }. The
product is correct — a raw string type is passed through verbatim by design,
and DATEONLY is a DataTypes key, not a SQL type. The test now uses
DataTypes.DATEONLY() and asserts DATE, which is what actually exercises the
type mapper.Integration suites (pre-existing)#
13 suites / 510 tests are gated on INTEGRATION=1 and need live services
(PostgreSQL, MySQL, MariaDB, SQL Server, CockroachDB, ClickHouse, Oracle,
Elasticsearch, Qdrant, etcd, InfluxDB, Neo4j, Weaviate, ArangoDB). Start them
with npm run test:db:up, then npm run test:integration. They skip by design
when docker is not running.Where the tests are#
Counted with ls tests/*.test.ts | wc -l for the root and
find tests/<dir> -name '*.test.ts' | wc -l for each directory; 648 test files
in total (find tests -name '*.test.ts' | wc -l). "other" is compliance (2),
associations, cloudflare, core and extensions (1 each).The chart shows that the root directory (cross-cutting suites: models,
transactions, type mapping, CLI, …) and the per-dialect suites hold most of
the files; a dialect or store without a file under tests/dialects or
tests/nosql is one to check before relying on it.What changed since 4.8.2#
The three commits that make up the next release (git log --oneline
a3ce5fba..477f13fb: type mapping and the transaction contract, 42 new
dialects, prorm models pull), grouped by top-level src/ directory with
git diff --numstat a3ce5fba..477f13fb summed per directory. A chart would be
dominated by the dialect row, so this is a table.| Area | Files | Lines added | Lines removed |
|---|
src/dialects | 90 | 64,178 | 8,793 |
src/codegen (new) | 20 | 6,472 | 0 |
src/query-builders | 18 | 5,982 | 2,045 |
src/*.ts (root modules: prorm.ts, transaction-support.ts, query-pipe.ts, …) | 22 | 5,419 | 1,480 |
src/models | 7 | 1,406 | 559 |
src/decorators | 14 | 1,025 | 240 |
src/compliance | 5 | 995 | 153 |
src/cli | 10 | 860 | 104 |
src/nosql | 3 | 709 | 10 |
src/query-optimizers | 5 | 536 | 98 |
src/types | 1 | 410 | 92 |
src/migrations | 3 | 114 | 16 |
everything else under src/ | 12 | 146 | 91 |
tests/ | 239 | 59,213 | 1,641 |
docs/ | 49 | 7,587 | 16 |
Modified at 2026-10-04 00:40:16