diff --git a/docs/sprint1-progress.md b/docs/sprint1-progress.md index 08ba36f..8755e69 100644 --- a/docs/sprint1-progress.md +++ b/docs/sprint1-progress.md @@ -45,9 +45,12 @@ `OpenIddict__Issuer`/`CertPassword` в compose. `compose config` валиден. 7. [x] **P0-9** — `docs/release-checklist.md`. ✅ Пред/во время/после выкатки + откат + прод; ссылки на secrets/backup/openiddict/stage-setup. -8. [ ] **P1-20 Unit-тесты** — `tests/food-market.UnitTests`: `StockService.ApplyMovement`, +8. [x] **P1-20 Unit-тесты** — `tests/food-market.UnitTests`: `StockService.ApplyMovement`, расчёт Cost в `SuppliesController.Post`, валидация платежа `RetailSalesController.Post`, multi-tenant query filter. + ✅ 23 теста зелёные. Чистая логика вынесена в Application (`MovingAverageCost`, + `RetailPaymentValidator`) и используется контроллерами. StockService + query-filter на + SQLite in-memory (EF8 поддерживает `ToJson`). `FakeTenantContext`, `SqliteDb` helper. 9. [ ] **P1-21 Integration-тесты** — Testcontainers.PostgreSql + WebApplicationFactory: signup-flow, supply post→unpost, retail overselling, tenant isolation A vs B, permission-проверки.