Ответ
Sanity — это headless CMS с реальным временем. Опыт тестирования включает проверку как бэкенда (контент-студия и API), так и фронтенд-интеграции.
Области тестирования:
-
API Sanity (GROQ/GraphQL):
- Проверка запросов: Валидация структуры и данных, возвращаемых по GROQ-запросам.
// Пример: Получение опубликованных статей *[_type == "post" && defined(slug.current)] { title, "slug": slug.current, publishedAt } | order(publishedAt desc) - Тестирование производительности: Замер времени ответа на сложные запросы с множеством joins и проекций.
- Проверка вебхуков: Убедиться, что события (публикация, удаление) корректно триггерят внешние системы.
- Проверка запросов: Валидация структуры и данных, возвращаемых по GROQ-запросам.
-
Sanity Studio (Админ-панель):
- Валидация кастомных input-виджетов.
- Проверка прав доступа для разных ролей пользователей.
- Тестирование workflow создания, редактирования и публикации контента.
-
Фронтенд-интеграция:
- Проверка отображения контента, полученного из Sanity, на клиенте.
- Обработка состояний загрузки и ошибок при работе с API.
- Тестирование реального времени: Проверка, что обновления контента в Studio почти мгновенно отражаются на сайте (если используется подписка).
Инструменты: Использовал Postman/Newman для тестов API, Jest/Cypress для фронтенд-тестов, интегрированных с Sanity.