Files
nuzlocke-tracker/.beans/nuzlocke-tracker-iam7--unit-tests-for-services-layer.md

28 lines
1.2 KiB
Markdown
Raw Normal View History

---
# nuzlocke-tracker-iam7
title: Unit tests for services layer
status: completed
type: task
priority: normal
created_at: 2026-02-10T09:33:08Z
updated_at: 2026-02-21T12:01:23Z
parent: nuzlocke-tracker-yzpb
---
Write unit tests for the business logic in `backend/src/app/services/`. Currently this is the `families.py` service which handles Pokemon evolution family resolution.
## Checklist
- [x] Test family resolution with simple linear evolution chains (e.g. A → B → C)
- [x] Test family resolution with branching evolutions (e.g. Eevee / Shedinja)
- [x] Test disjoint chains remain separate families
- [x] Test edge cases: empty list, single-stage Pokemon, base form, middle form
- [x] Test resolve_base_form: linear, branching, Shedinja, not-in-any-evolution
- [x] Test to_roman: parametrized 1100, genlocke sequence IV
- [x] Test strip_roman_suffix: II/III/IV/X, no suffix, round-trip with to_roman
## Notes
- `services/families.py` contains the core logic for resolving Pokemon evolution families
- These tests may need mock database sessions or in-memory data depending on how the service queries data
- If the service methods take a DB session, mock it; if they operate on data objects, pass test data directly