docs(dev): one behavioral test file per new table

Stops adding low-value schema integration tests. From now on a new database table gets one behavioral test file; the existing suites are trimmed separately.

Before. A new table shipped two or three test files, over a thousand lines, most of it checking schema shape: each column exists with the right type and nullability, the primary key and index names, index column order, which indexes are unique, foreign-key delete actions, partition count and hash key, identifier lengths, plus a sweep inserting one accepted row per enumerated value of unrelated columns. A smaller part checked behavior: constraint violations, cascades, the static shape of the migration file.

After. One file, behavior only:

  • what the table refuses, one row per CHECK bound and per foreign key;
  • what a delete cascades into;
  • transaction-scoped properties, such as a deferrable constraint;
  • rows the table accepts on purpose that a later consumer must handle;
  • the migration file's shape, parsed rather than run.

The schema-shape checks are dropped: the tests that query PostgreSQL's system tables to confirm a column, index, or constraint exists with the expected name and type. The db:structure-check CI job regenerates structure.sql on every migration change and fails on any drift, so a Go test for the same fact is a second copy of the same check. The one thing the dump does not pin, identifier truncation, is checked once when writing the migration and stated in the MR.

Edited by João Pereira

Merge request reports

Loading
Loading