Тестирование

Версия и доступность

Документация закрепляет релизный контракт 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.

Так вы проверите весь путь без второго своего приложения:

  1. Выпустите ключ тестового контура и укажите адрес для вебхуков.
  2. Нажмите в кабинете «Отправить проверочное событие» — должен прийти ping с верной подписью.
  3. Отправьте анкету в одном из городов песочницы — придут два like.received.
  4. Получите ленту — в ней анкеты песочницы.
  5. Лайкните одну из них — придёт match.created.
  6. Напишите сообщение по-английски анкете с русским языком — проверьте перевод и message.created.
  7. Удалите переписку у себя, удалите пару, заблокируйте, удалите анкету — проверьте 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-кредиты.

Непонятно? Напишите разработчику

Ответ и продолжение переписки — на сайте по секретной ссылке, которую вы получите после отправки. Входящая почта не принимается.