Smoke-тест состояния hybrid-доставки

Предусловия

  1. Применены все 11 миграций по docs/supabase-migration-order.md.
  2. Развёрнуты broker-public-lead и broker-delivery-receipt.
  3. Для обеих функций проверен точный ALLOWED_ORIGINS.
  4. В тестовой среде включён hybrid; рабочая конфигурация сайта до приёмки остаётся web3forms с пустым endpoint.
  5. Используются только тестовые имя, телефон и email-канал.

1. Проверка миграции

Подтвердить наличие:

Новая Supabase-строка должна получать supabase_only по умолчанию.

2. Порядок браузерных скриптов

На /online-zayavka/ проверить порядок:

  1. application-delivery-keepalive.js;
  2. application-inputs.js;
  3. application-preparation.js;
  4. основной online-application.js из layout.

Только запрос delivery_receipt + both должен получать keepalive: true. Основная заявка и Web3Forms не должны получать этот флаг автоматически.

3. Web3Forms-only

Отключить или намеренно сломать тестовый Supabase endpoint, оставив Web3Forms рабочим.

Ожидание:

4. Supabase-only

Отключить тестовый Web3Forms-канал, оставив Supabase рабочим.

Ожидание:

5. Оба канала

Включить оба тестовых канала.

Ожидание:

В DevTools подтвердить, что receipt-запрос имеет keepalive и может завершиться после начала перехода на /spasibo/.

6. Медленный Supabase

Задержать ответ основной Edge Function более чем на 2500 мс, но меньше общего таймаута формы.

Ожидание:

7. Ошибка receipt-handler

Оба основных канала должны успешно принять заявку, а receipt-handler вернуть ошибку или быть недоступным.

Ожидание:

8. Restricted, hold и anonymized

Для тестовой Supabase-строки по очереди установить:

Отправить квитанцию both.

Ожидание:

9. Отсутствующая заявка

Отправить валидную квитанцию с неизвестным request ID.

Ожидание:

10. Невалидная квитанция

Проверить:

Ожидание: безопасный error envelope без внутренних SQL-кодов и персональных данных.

11. Права

Под anon и authenticated прямой вызов RPC должен завершаться отказом.

Receipt Edge Function использует service role только внутри серверного кода. Service-role key отсутствует в HTML, JavaScript, _config.yml и публичных ответах.

12. Аналитика

Проверить пять фиксированных целей. В параметрах Метрики не должно быть:

13. Откат

До завершения проверки вернуть:

lead_capture:
  mode: "web3forms"
  endpoint: ""

Отключить или удалить test receipt function URL из внешней тестовой конфигурации. Миграции и тестовые строки не удалять без отдельного решения.

ЗаявкаПозвонитьВК