Migrated from Method backlog
GitHub Issues are now the live work tracker. Repository docs remain Method evidence.
| Field |
Value |
| Source backlog |
docs/method/backlog/bad-code/SPEC_readtreeoids-mock-returns-array.md |
| Archived source |
docs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/bad-code/SPEC_readtreeoids-mock-returns-array.md |
| Original lane |
bad-code |
| Original id |
SPEC_readtreeoids-mock-returns-array |
| Original legend |
SPEC |
| Original feature |
docs-dx |
| Original release home |
v17.0.0 |
Original backlog card
readTreeOids mocks returned [] instead of {} (type contract violation)
Effort: XS
What's Wrong
Three test files had readTreeOids mocks returning [] (empty array)
instead of {} (empty object). TreePort.readTreeOids() contract is
Record<string, string>. This violated the type contract silently
because Object.entries([]) is []. Found by CodeRabbit review.
The instances are already fixed, but the underlying weakness remains:
nothing prevents future mocks from returning the wrong shape.
Suggested Fix
Add a JSDoc/tsc assertion to createMockPersistence() ensuring
readTreeOids returns Record<string, string>, not any[]. Consider
a runtime shape check in debug builds or test helpers.
Migrated from Method backlog
GitHub Issues are now the live work tracker. Repository docs remain Method evidence.
docs/method/backlog/bad-code/SPEC_readtreeoids-mock-returns-array.mddocs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/bad-code/SPEC_readtreeoids-mock-returns-array.mdbad-codeSPEC_readtreeoids-mock-returns-arraySPECdocs-dxv17.0.0Original backlog card
readTreeOids mocks returned [] instead of {} (type contract violation)
Effort: XS
What's Wrong
Three test files had
readTreeOidsmocks returning[](empty array)instead of
{}(empty object).TreePort.readTreeOids()contract isRecord<string, string>. This violated the type contract silentlybecause
Object.entries([])is[]. Found by CodeRabbit review.The instances are already fixed, but the underlying weakness remains:
nothing prevents future mocks from returning the wrong shape.
Suggested Fix
Add a JSDoc/tsc assertion to
createMockPersistence()ensuringreadTreeOidsreturnsRecord<string, string>, notany[]. Considera runtime shape check in debug builds or test helpers.