Перейти к основному содержимому

Тестовая матрица

Цели

  • Проверить, что public endpoints показывают только опубликованные данные.
  • Проверить CMS publication lifecycle.
  • Проверить каталог, фильтры, подборки и source refs.
  • Проверить forms, CRM handoff, spam policy и idempotency.
  • Проверить SEO: canonical, sitemap, redirects, noindex.
  • Проверить moderation и consent gates для PII.

Unit tests

Pages

  • slug уникален в рамках locale;
  • published version immutable;
  • page без SEO не публикуется;
  • private page не попадает в sitemap;
  • block validation зависит от type;
  • visibility rule скрывает block.

Catalog

  • фильтры по facets;
  • сортировка ручная и автоматическая;
  • item без source/manual owner не публикуется;
  • hidden item не показывается в public catalog;
  • collection rule возвращает ожидаемые items.

Profiles

  • person profile требует consent;
  • student profile требует privacy policy;
  • context role не публикуется при hidden profile;
  • public name не раскрывает internal identity fields.

Reviews, achievements, facts

  • review требует moderation и consent;
  • rejected review не входит в rating;
  • achievement требует subject и period/date;
  • fact требует source или verification owner;
  • expired fact не показывается как актуальный.

Forms

  • schema validation;
  • consent required;
  • spam policy rejects invalid submission;
  • idempotency key prevents duplicate CRM lead;
  • failed submission can retry.

SEO

  • redirect cycle detection;
  • external redirect allowlist;
  • canonical duplicate detection;
  • sitemap includes only indexable published pages.

Integration tests

Page publication

  1. Создать page.
  2. Создать version.
  3. Добавить blocks.
  4. Заполнить SEO.
  5. Опубликовать.
  6. Получить public page.

Ожидание: public response содержит только published blocks.

Catalog source update

  1. Получить product read-model update.
  2. Создать или обновить catalog item.
  3. Применить manual display override.
  4. Повторить source update.

Ожидание: canonical source fields обновлены, manual override не потерян.

Form to CRM

  1. Public visitor отправляет форму.
  2. Storefront сохраняет submission.
  3. Worker передаёт lead в CRM.
  4. CRM возвращает crmLeadId.
  5. Повторная доставка не создаёт дубль.

Moderation

  1. Создать review.
  2. Отправить на moderation.
  3. Approve.
  4. Publish.
  5. Проверить public endpoint и rating aggregate.

SEO

  1. Опубликовать страницу.
  2. Пересобрать sitemap.
  3. Создать redirect.
  4. Проверить redirect resolve.

E2E scenarios

Посетитель находит курс и оставляет заявку

  • открывает каталог;
  • применяет фильтры;
  • открывает карточку;
  • переходит на лендинг;
  • отправляет форму;
  • видит neutral success;
  • CRM получает lead.

Редактор публикует лендинг

  • создаёт страницу;
  • добавляет blocks;
  • настраивает SEO;
  • проходит publish checklist;
  • смотрит preview;
  • публикует;
  • public endpoint отдаёт страницу.

Модератор публикует отзыв

  • видит review в queue;
  • проверяет PII и consent;
  • approves;
  • review появляется на разрешённых страницах;
  • rating aggregate пересчитан.

SEO-специалист архивирует страницу

  • переводит page в archived;
  • создаёт redirect;
  • sitemap обновляется;
  • old URL resolve возвращает redirect;
  • archived page noindex.

Security tests

  • public endpoint не отдаёт draft/review/scheduled/private;
  • preview требует permission;
  • form endpoint rate-limited;
  • form payload не попадает в application logs;
  • open redirect заблокирован;
  • external redirect требует allowlist;
  • profile несовершеннолетнего без consent не публикуется;
  • form submissions читаются только storefront.forms.read_submissions;
  • audit logs доступны только storefront.audit.read.

SEO tests

  • все published index pages имеют title и description;
  • canonical не конфликтует между страницами;
  • sitemap не содержит noindex/private/hidden pages;
  • redirects не создают цепочки и циклы;
  • archived pages имеют redirect или noindex;
  • structured data валидируется по schema.

Performance and cache tests

  • public pages cacheable по page version;
  • preview не cacheable публичным CDN;
  • publication invalidates affected page/cache/sitemap;
  • catalog filters имеют индексы и не деградируют на больших списках;
  • form submit не зависит от синхронного ответа CRM.

Acceptance gates

  • Все state transitions покрыты unit tests.
  • Все publish actions проверяют checklist и permissions.
  • Все public endpoints имеют negative tests на draft/private data.
  • Forms имеют spam, consent, idempotency и CRM retry tests.
  • SEO имеет tests на sitemap, redirects и canonical.
  • Moderation имеет tests на reviews, achievements, facts и profiles.