Тестирование
Версия и доступность
Документация закрепляет релизный контракт 1.0.0, но не подтверждает его развёртывание в production. Сначала проверьте GET /v1/capabilities с ключом нужного контура. Не включайте возможности по одному только наличию их в OpenAPI. 404 — контракт capabilities ещё не поддерживается; не считайте отсутствующий ответ разрешением на функции. /readyz проверяет только базу, capabilities — конфигурацию, не здоровье внешних сервисов. Проверяйте перевод и фотопроверку отдельными тестами; при videos: false не отправляйте ролики.
Тестовый контур
У каждой площадки в кабинете два контура: тестовый и боевой. У каждого свои ключ API, секрет подписи, адрес для вебхуков и статистика. Адрес API у них общий — https://api.pereval.dating, контур определяется ключом.
Анкеты тестового контура видят только другие тестовые площадки и песочница сети. К живым людям они не попадают, поэтому отлаживайтесь смело. Адрес вебхуков в тестовом контуре может быть и http://, например адресом туннеля.
Песочница
В тестовом контуре вас ждут анкеты песочницы — «Песочница Перевала» в поле partner. Они есть в Москве, Петербурге, Казани, Екатеринбурге и Новосибирске, на русском и английском, мужские и женские. Ведут себя как живые люди, только быстро — через пару секунд:
- лайкнули анкету песочницы — она отвечает взаимностью, придёт
match.created; - написали ей — она отвечает, придёт
message.created; если языки разные, ответ придёт с переводом; - отправили новую анкету в одном из этих городов — две анкеты песочницы рядом лайкнут её сами, придут
like.received.
Так вы проверите весь путь без второго своего приложения:
- Выпустите ключ тестового контура и укажите адрес для вебхуков.
- Нажмите в кабинете «Отправить проверочное событие» — должен прийти
pingс верной подписью. - Отправьте анкету в одном из городов песочницы — придут два
like.received. - Получите ленту — в ней анкеты песочницы.
- Лайкните одну из них — придёт
match.created. - Напишите сообщение по-английски анкете с русским языком — проверьте перевод и
message.created. - Удалите переписку у себя, удалите пару, заблокируйте, удалите анкету — проверьте
match.erasedиmatch.closed(сpeer_deleted).
Журнал последних событий и график запросов к API — в кабинете: видно, что дошло, а что ушло на повтор.
Локальная разработка вебхуков
Сеть должна достучаться до вашего обработчика. Для локальной разработки используйте туннель (ngrok, cloudflared, tuna) и укажите его адрес как адрес вебхуков тестового контура.
Можно обойтись и без туннеля: оставьте адрес вебхуков пустым и забирайте события сами запросом GET /v1/events — см. События и вебхуки.
Чек-лист перед запуском
- Ключ API хранится только на сервере.
- Подпись вебхуков проверяется по сырому телу; неверная подпись —
401. - Повтор события с тем же
idничего не дублирует. - Переключатель участия в сети выключен по умолчанию, рядом — ссылка на pereval.dating.
- Согласия показываются с текстами; время и версия сохраняются.
- Выключение участия отправляет анкету с
consent.network: false; удаление данных из сети и аккаунта сразу вызываетDELETE /v1/members/{id}(илиdeactivate, если даёте время на восстановление). - На сетевых анкетах есть отметка сети «Перевал». У переведённого текста есть пометка «переведено ИИ» и доступен оригинал.
- В листалке пропуск без лайка уходит в
POST /v1/dislikes. На сайте с поиском страница идёт поcursor, дизлайк — только явный отказ. - Сообщения с
suspicious: trueпоказываются с предупреждением. - Ошибки
409 location_change_limitedи429 first_messages_limitобъяснены человеку понятными словами. - Блокировка и жалоба работают и для анкет из сети.
- В фото нет EXIF с геопозицией.
Дополнительные услуги
Проверьте услуги сети с тестовым расходным аккаунтом: котировка/подтверждение, повторы заказа и действия, отсутствие права, окончание срока, инкогнито до буста и во время буста, перезапуск интеграции. TEST-SKU имеют суффикс -test; rewind-day-test и incognito-day-test измеряются сутками. Тестовые цены условные, баланс и ключ выдаются отдельно администратором, кабинет пока их не создаёт. В боевом контуре используются отдельные RUB-SKU с ценой 0, а не TEST-кредиты.