Основные изменения: - Добавлены E2E тесты для проверки ownership (TC-E2E-102/103): * test_admin_can_edit_any_post — admin может редактировать любой пост * test_user_cannot_edit_other_users_post — user не может редактировать чужой пост - Исправлены use cases (UpdatePost, DeletePost, PublishPost) — добавлена проверка роли admin - Обновлены web routes и API routes для передачи роли в use cases - Добавлены unit тесты для admin-сценариев Реструктуризация тестов: - Удалены старые API тесты (tests/api/) — требуют переработки - Удалены старые integration тесты (tests/integration/) - Переработаны E2E тесты: удалены старые, добавлены новые с POM - Добавлена документация тестов: FEATURE_*.md, TEST_MODEL.md, AGENTS.md Инфраструктура: - Добавлен MockKeycloakClient для dev-режима - Добавлены статические файлы: EasyMDE, Highlight.js, стили markdown - Обновлены шаблоны: base.html, post_form.html, post_detail.html - Обновлена DI конфигурация и провайдеры Документация: - tests/FEATURE_RBAC.md — матрица тестов RBAC - tests/FEATURE_POST_LIFECYCLE.md — тесты жизненного цикла поста - tests/FEATURE_DOMAIN_FOUNDATION.md — тесты доменного слоя - tests/FEATURE_INFRASTRUCTURE.md — тесты инфраструктуры - tests/TEST_MODEL.md — глобальная матрица покрытия - app/presentation/web/AGENTS.md — гайд по Web UI - tests/AGENTS.md — гайд по тестированию
2.7 KiB
2.7 KiB
Test Model: Blog
Global test coverage map for the blog application. Use this file to assess which features are covered, where gaps exist, and what to prioritize when adding new tests.
Coverage Matrix
| Feature | Unit | Integration | API | E2E | Priority | Status |
|---|---|---|---|---|---|---|
| Post Lifecycle (CRUD, Publish) | 85% | — | — | 70% | P0 | ✅ Active |
| RBAC & Access Control | 90% | — | — | 60% | P0 | ✅ Active |
| Domain Value Objects | 100% | — | — | — | P0 | ✅ Stable |
| Domain Entities | 95% | — | — | — | P0 | ✅ Stable |
| Domain Exceptions | 100% | — | — | — | P1 | ✅ Stable |
| List & Search Posts | 70% | — | — | — | P1 | ⚠️ Partial |
| Keycloak Auth Client | 80% | — | — | — | P0 | ✅ Active |
| App Bootstrap & Config | 75% | — | — | — | P1 | ✅ Stable |
| Transaction Manager | 60% | — | — | — | P2 | ⚠️ Partial |
| Web UI Error Handling | — | — | — | 40% | P1 | ⚠️ Partial |
| Pagination | 40% | — | — | — | P1 | ⚠️ Partial |
| Post Edit via Web | — | — | — | — | P1 | ❌ Missing |
| Post Delete via Web | — | — | — | — | P1 | ❌ Missing |
Legend: ✅ Covered / ⚠️ Partial / ❌ Missing / — Not Applicable
Feature Files
| Feature | Model File |
|---|---|
| Post Lifecycle | FEATURE_POST_LIFECYCLE.md |
| RBAC & Access Control | FEATURE_RBAC.md |
| Domain Foundation | FEATURE_DOMAIN_FOUNDATION.md |
| Infrastructure & Bootstrap | FEATURE_INFRASTRUCTURE.md |
Test Naming Convention
- TC-UNIT-NNN: Unit test case
- TC-E2E-NNN: End-to-end test case
- TC-INT-NNN: Integration test case
- TC-API-NNN: API test case
How to Update This Model
- When adding a new test, assign the next available TC-ID in the relevant feature file.
- Update the Coverage Matrix above if the new test closes a gap or changes coverage percentage.
- Update the
Last Verifiedfield in the feature file after running the test successfully. - When a test is deleted or renamed, update the corresponding TC entry and mark it as Deprecated.
Risk Areas
- No Integration Tests: SQLAlchemy repository has no integration tests against a real database.
- Deleted API Tests: API endpoint tests were removed in a previous refactor and need restoration.
- Web UI Error Handling: Only covered indirectly via E2E; no dedicated error-scenario E2E tests.
- Pagination Edge Cases: Page boundaries, empty pages, and large offsets are not explicitly tested.
- Edit/Delete Web Flows: No E2E coverage for editing or deleting posts through the web UI.