
Каталог може показувати правильну загальну кількість товарів і водночас пропускати записи між сторінками. Перевіряти потрібно не лише число результатів, а й набір унікальних ідентифікаторів, які отримав клієнт. ПОЧНІТЬ ІЗ ВІДТВОРЮВАНОГО НАБОРУ Для тестового середовища створіть 75 записів, причому кілька десятків нехай мають однакову дату й ціну. Вивантажте очікувані ID окремим запитом. Обійдіть усі сторінки по 25 записів і порівняйте два набори. Це власний сценарій перевірки: він допомагає помітити проблему, яку легко приховують різні дати у випадкових даних. ЗАДАЙТЕ ПОВНИЙ ПОРЯДОК PostgreSQL не обіцяє потрібний порядок без ORDER BY. Для однакових значень додавайте унікальний критерій: наприклад, ORDER BY created_at DESC, id DESC. Саме порядок має бути однаковим у списку, експорті й переході на наступну сторінку. Перевірте також сортування за ціною, назвою та популярністю; кожне з них потребує власного визначеного правила для рівних значень. ЗМІНА ДАНИХ ПІД ЧАС ПЕРЕГЛЯДУ Детерміноване сортування не заморожує каталог. Якщо між запитами додається новий запис, позиції OFFSET можуть зміститися. Для стрічки можна розглянути курсор із парою created_at та id; запит продовжується після останньої отриманої пари. Це проєктне рішення, а не універсальна заміна. Для експорту, що має відображати один знімок, окремо визначайте межі узгодженості й механізм формування знімка. ПЕРЕВІРТЕ КОНТРАКТ КЛІЄНТА Курсор має відповідати поточним фільтрам і сортуванню. Після зміни категорії клієнт починає обхід заново. Не плутайте останню сторінку з помилкою сервера: порожній результат і невдалий запит повинні мати різні зрозумілі стани. Встановіть максимальний розмір сторінки, перевіряйте вхідні параметри й не передавайте секрети всередині курсора. КРИТЕРІЙ ГОТОВНОСТІ Тест проходить, якщо без змін у наборі кожен очікуваний ID з’явився рівно один раз. Потім повторіть обхід з додаванням і видаленням записів та запишіть очікувану поведінку. Для користувача корисніше побачити чесне повідомлення про зміну каталогу, ніж мовчки втратити позиції. Каталог доменів: https://domainevery.com/uk/domains Першоджерела: https://www.postgresql.org/docs/current/queries-limit.html https://www.postgresql.org/docs/current/queries-order.html https://www.postgresql.org/docs/current/transaction-iso.html

