diff --git a/docs/in-progress/CALENDAR_OPTIONAL_ARCHITECTURE.md b/docs/in-progress/CALENDAR_OPTIONAL_ARCHITECTURE.md index ac5acd63..f89ab3a3 100644 --- a/docs/in-progress/CALENDAR_OPTIONAL_ARCHITECTURE.md +++ b/docs/in-progress/CALENDAR_OPTIONAL_ARCHITECTURE.md @@ -2,7 +2,7 @@ **Дата:** 11 февраля 2026 г. **Подход:** Обратно совместимое расширение без поломки существующего функционала -**Статус:** ✅ Phase 2 (API) завершена +**Статус:** ✅ Phase 2 (API + Testing) завершена --- @@ -16,7 +16,7 @@ - ✅ Admin интерфейсы настроены - ✅ Коммит: `feat(calendar): add optional Calendar and CalendarSubscription models` -### ✅ Phase 2: API Layer (Завершено) +### ✅ Phase 2: API Layer + Testing (Завершено) - ✅ `CalendarEventWriteSerializer` поддерживает `calendar_id` - ✅ Созданы сериализаторы для `Calendar` (read + write) - ✅ Созданы сериализаторы для `CalendarSubscription` (read + write) @@ -27,7 +27,24 @@ - ✅ `CalendarManager.get_available_for_user()` метод - ✅ Методы проверки прав в модели `Calendar` - ✅ URL маршруты зарегистрированы -- ✅ Коммит: `feat(calendar): add API layer for optional calendars` +- ✅ Коммит API: `feat(calendar): add API layer for optional calendars` + +#### 🧪 Тестирование (Завершено) +- ✅ Создана фикстура `make_event` для тестов событий +- ✅ Миграция 0012: `CalendarSubscription.color_override` nullable +- ✅ Добавлены computed-поля в `CalendarSerializer`: `is_personal`, `is_global`, `is_department` +- ✅ Исправлен `CalendarViewSet.create()` для корректного ответа +- ✅ Создан `test_new_calendar_api.py` с 29 тестами: + * 11 CRUD тестов (list, create, retrieve, update, delete) + * 6 subscription тестов (subscribe, unsubscribe, my-subscriptions) + * 3 event filtering тестов (calendar_id filtering, legacy separation) + * 3 visibility тестов (public, private, department) + * 6 permission тестов (is_owner, can_user_view, can_user_edit) +- ✅ **Результаты тестов:** + * ✅ 34 legacy тестов пройдено (обратная совместимость) + * ✅ 29 новых тестов пройдено (новый функционал) + * ✅ **Всего: 63 теста успешно!** +- ✅ Коммит тестов: `feat(calendar): add comprehensive test suite for new Calendar API` #### API эндпоинты (новые): ``` @@ -56,11 +73,13 @@ GET /api/v1/calendar/events/?calendar_id={id} # События календ - ⏳ Переключатель отображения календарей - ⏳ Интеграция с FullCalendar.js -### ⏳ Phase 4: Тестирование (В планах) -- ⏳ Unit тесты для моделей -- ⏳ API тесты для новых эндпоинтов -- ⏳ Тесты прав доступа -- ⏳ Тесты обратной совместимости +### ⏳ Phase 4: Дополнительное тестирование (В планах) +- ✅ Unit тесты для моделей (через API тесты) +- ✅ API тесты для новых эндпоинтов (29 тестов) +- ✅ Тесты прав доступа (6 тестов permissions) +- ✅ Тесты обратной совместимости (34 legacy теста) +- ⏳ Integration тесты frontend + backend +- ⏳ E2E тесты пользовательских сценариев ### ⏳ Phase 5: Документация (В планах) - ⏳ Обновление README