Какой у вас опыт тестирования приложений, использующих Sanity CMS?

«Какой у вас опыт тестирования приложений, использующих Sanity CMS?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Sanity — это headless CMS с реальным временем. Опыт тестирования включает проверку как бэкенда (контент-студия и API), так и фронтенд-интеграции.

Области тестирования:

  1. API Sanity (GROQ/GraphQL):

    • Проверка запросов: Валидация структуры и данных, возвращаемых по GROQ-запросам.
      // Пример: Получение опубликованных статей
      *[_type == "post" && defined(slug.current)] {
      title,
      "slug": slug.current,
      publishedAt
      } | order(publishedAt desc)
    • Тестирование производительности: Замер времени ответа на сложные запросы с множеством joins и проекций.
    • Проверка вебхуков: Убедиться, что события (публикация, удаление) корректно триггерят внешние системы.
  2. Sanity Studio (Админ-панель):

    • Валидация кастомных input-виджетов.
    • Проверка прав доступа для разных ролей пользователей.
    • Тестирование workflow создания, редактирования и публикации контента.
  3. Фронтенд-интеграция:

    • Проверка отображения контента, полученного из Sanity, на клиенте.
    • Обработка состояний загрузки и ошибок при работе с API.
    • Тестирование реального времени: Проверка, что обновления контента в Studio почти мгновенно отражаются на сайте (если используется подписка).

Инструменты: Использовал Postman/Newman для тестов API, Jest/Cypress для фронтенд-тестов, интегрированных с Sanity.