Skip to content

hypatia-bench runs only api-rest's unit tests, so a new integration test passes by not existing #5

Description

@Jerhaad

hypatia-bench exists so that a green run predicts a green pull request. For api-rest it stopped being true.

The script runs:

cargo test -p api-rest --lib

ci.yaml runs both halves, and its comment says why the second one names no binary:

# Every test target, not one named binary: the integration tests are
# split per surface, so naming them here means a new file is silently
# never run in CI.
- name: API integration tests
  run: just rust-test-api-integration

just rust-test-api-integration is cargo test -p api-rest --tests. Nothing under crates/api-rest/tests/ runs in the bench today — sixteen trigger tests, twelve ingest tests, and every other surface.

Found 2026-08-11 on hypatia issue-182: two new tests were added to crates/api-rest/tests/ingest.rs, hypatia-bench --full reported PASS, and neither test had run. They passed when invoked by hand:

cd bench/<name>
DATABASE_URL=postgres://hypatia_ci@localhost:55432/hypatia_<name> cargo test -p api-rest --tests

This is the same class as the hypatia-verify web gate that runs tsc --noEmit against a solution-style tsconfig and compiles zero files: a gate that reports on work it never did. The fix that does not rot is to read the command out of ci.yaml, the way hypatia-compose-check already does, rather than keeping a second copy of the gate list in the script.

Done when: a test file added under crates/api-rest/tests/ fails hypatia-bench if it fails CI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions