Усі статті
2 хв читання#agents#api#developers

Як тестувати інтеграцію і не смітити

Пісочниці тут немає. Є дещо краще: виклик, який перевіряє все і не створює нічого.

Почніть із сухого прогону

Ендпоїнт валідації приймає те саме тіло, що й створення, застосовує ту саму схему і ті самі правила імен і повертає всі проблеми разом, нічого не записуючи. Більшу частину інтеграції можна розробляти проти нього: імена полів, форми блоків, обробку помилок, увесь шлях від відповідей людини до валідного запиту.

Це ж чесний перший виклик і в проді. Прогін, який валідує перед створенням, перетворює низку піввідмов на один список і ніколи не спалює адресу на тілі, яке все одно відхилили б.

  1. Розробляйте проти валідації, доки тіло не стане правильним, а обробка помилок — перевіреною.
  2. Потім створіть одну справжню сторінку на одноразовій адресі й прочитайте її назад у Markdown.
  3. Перевірте, що claim-посилання відкривається, а сторінка нормально має вигляд на телефоні.
  4. Видаліть сторінку, коли завершите. Видалення забирає із собою файли й статистику.

Що легко забути перевірити

  • Зайняте ім’я: чекайте конфлікт із варіантами і переконайтеся, що показуєте їх, а не обираєте самі.
  • Ліміт: чекайте 429 з retryAfter і переконайтеся, що чекаєте, а не крутите цикл.
  • Повтор: надішліть той самий ключ ідемпотентності двічі й переконайтеся, що отримали одну сторінку, а не дві.
  • Погану адресу картинки: сторінка все одно створиться, а збій прийде в попередженнях.

Сміття і що з ним відбувається

Кожна залишена тестова сторінка тримає адресу назавжди, бо видалене ім’я лишається припаркованим: старі посилання не мають почати вести на стороннього. Це єдина ціна недбалих експериментів, і платить її наступний, кому це ім’я було потрібне.

Страховка є: сторінка, зроблена програмою, ніким не забрана і жодного разу не відкрита, знімається з публікації через тридцять днів і видаляється через шістдесят, а ім’я звільняється, а не паркується. Покладайтеся на це для прогонів, про які забули, а не для тих, що йдуть просто зараз.

Читати далі