Summary
Use pg-mem fallback in unit tests but require a real DB in CI integration.
Background
Test coverage in this area is currently thin: regressions can land without a failing build. Adding the cases below will lock the contract in place, document the expected behaviour through executable examples, and shorten review cycles when this code changes again.
Acceptance criteria
Implementation hints
- Pick the right test layer: unit tests inside the affected module for pure logic, integration tests under
tests/ for cross-module behaviour.
- Cover the happy path and at least one explicit sad path; the title of this issue describes the boundary that needs to be locked in.
- Where the project uses
proptest/fast-check/fc, prefer a property test over many hand-written cases. Commit any failing seed back to the repo.
- Keep test names assertive (
returns_zero_when_balance_is_zero), not interrogative.
- New tests should be deterministic: no
Date.now()/Math.random() without an injected fake.
Repo-specific notes
- Run
npx tsc --noEmit, npm test, and the security:scan / sbom:check scripts locally before pushing.
- Any new request or response shape must have a matching Zod schema and a regenerated OpenAPI entry.
- New env vars must be added to
.env.example and to the relevant deployment doc.
Out of scope
- Unrelated refactors in adjacent files.
- Stylistic-only changes (formatting, renaming) that are not required by the fix.
- Anything beyond the acceptance criteria above; surface follow-ups as separate issues.
How to claim and submit
- Comment on this issue saying you'd like to take it on; wait for a maintainer to assign you (avoids duplicated effort).
- Open a PR that references this issue (
Closes #<this-issue>).
- Make sure CI is green and request review from a
CODEOWNERS maintainer.
- PRs that close this issue and pass review may qualify for a reward — see the
MAYBE REWARDED label and the GrantFox OSS campaign page.
Category: test · Campaign: GrantFox OSS · Official Campaign · Maybe Rewarded
Summary
Use
pg-memfallback in unit tests but require a real DB in CI integration.Background
Test coverage in this area is currently thin: regressions can land without a failing build. Adding the cases below will lock the contract in place, document the expected behaviour through executable examples, and shorten review cycles when this code changes again.
Acceptance criteria
mainbefore the fix (if this is a regression test) and passes after.Closes #<this-issue>.Implementation hints
tests/for cross-module behaviour.proptest/fast-check/fc, prefer a property test over many hand-written cases. Commit any failing seed back to the repo.returns_zero_when_balance_is_zero), not interrogative.Date.now()/Math.random()without an injected fake.Repo-specific notes
npx tsc --noEmit,npm test, and the security:scan / sbom:check scripts locally before pushing..env.exampleand to the relevant deployment doc.Out of scope
How to claim and submit
Closes #<this-issue>).CODEOWNERSmaintainer.MAYBE REWARDEDlabel and the GrantFox OSS campaign page.Category:
test· Campaign: GrantFox OSS · Official Campaign · Maybe Rewarded