Инструкция по проверке — партия задач от 21 сентября 2026
Пошаговое руководство: куда переходить, на что нажимать и что должно получиться. Проверка занимает ~20–30 минут и не требует правок кода — только браузер и админку.
| Сайт (клиент) | https://gscoffeetest.dev.inteli-dev.ru |
| Админка (Filament) | https://gscoffeetest.dev.inteli-dev.ru/admin |
| Эта документация | https://docs.gscoffeetest.dev.inteli-dev.ru |
| Ветка / коммит | dev · 4310a07 (плюс feature/team-fund-donations · 38e43a5) |
| Языки | /en/ /ua/ /ru/ /fr/ /de/ /es/ /pl/ /zh/ |
Тестовый стенд отдаёт рабочее дерево репозитория
Стенд показывает то, что сейчас в рабочей копии на ветке dev. Задачи 1–13 из этой партии — на dev. Правка чата команд/фонда (задача 11 во второй части) лежит на ветке feature/team-fund-donations и на стенде видна только после переключения ветки.
1. Доступы и общие приёмы
Учётные записи
| Роль | Логин | Пароль | Где входить |
|---|---|---|---|
| Администратор | admin@gs-coffee.co | password | /admin/login |
| Демо-клиент | client@example.com | password | /en/login |
«Login as user» — как смотреть глазами клиента
У большинства клиентов с заказами (aigen.chernogorsk@yandex.ru, serzhikgsv@icloud.com) пароль нам неизвестен — и не нужен:
- Войдите как админ → Users (
/admin/users). - Найдите клиента (поиск по e-mail) → в строке справа иконка «Login as user» → подтвердите Continue.
- Откроется клиентский кабинет
/my-account. Сверху появится жёлтая плашка «You are signed in as …» с кнопкой Stop impersonating — нажмите её, чтобы вернуться в/admin.
Вложенный вход запрещён
Из-под имперсонации нельзя войти ещё раз. Сначала нажмите Stop impersonating, потом входите под другим пользователем.
Что где лежит в админке
| Раздел | URL | Что внутри |
|---|---|---|
| Lots | /admin/lots | лоты, обложка, миниатюра, ROZETKA, заметки серийников, Media Pages |
| Orders | /admin/orders | заказы, чат с клиентом, удаление заказа |
| Invoices | /admin/invoices | инвойсы, Generate PDF, Send to Client |
| Users | /admin/users | клиенты, «Login as user» |
| Serial Numbers | /admin/serial-numbers | серийные номера, генерация партии, заметки |
| Serial Number Notes | /admin/serial-number-settings | глобальная заметка (низший приоритет) |
2. Быстрый чек-лист
Отметьте галочкой — этого достаточно для приёмки. Ниже расписаны детали.
| № | Задача | Куда перейти (кратко) | Ожидаемый результат |
|---|---|---|---|
| 1 | Медиа-страница в статусе Draft скрыта | /en/verify/TEST2026-01 и каталог /green-coffee/brazil-santos-natural/media | черновик GS-2026-005 нигде не упоминается; прямой URL черновика → 404; в каталоге черновиков нет даже у админа |
| 2 | Убрать дату обновления privacy policy | /en/privacy-policy | нет строки «Last updated …» |
| 3 | Миниатюра лота в PDF Invoice | Admin → Invoices → Generate PDF → открыть PDF | в таблице позиций есть колонка Image с фото |
| 4 | Выбор миниатюры в админке + отображение в списке заказов | Admin → Lots → Cover Image; затем /my-account/orders | миниатюра 48×48 + название лота в строке заказа |
| 5 | YouTube и почта в footer | низ /en/ | ссылка YouTube и info@gscoffee.cr (рядом с sales@) |
| 6 | Заметки серийников на всех локализациях | Admin → Serial Numbers → Notes (вкладки языков); /ua/verify/TEST2026-01 | украинский текст на /ua/, английский на /en/ |
| 7 | Счётчик заказов уменьшается после удаления заказа | /my-account → sidebar «My Orders» | бейдж уменьшается, «осиротевшая» запись уведомления удаляется |
| 8 | Настоящий логотип Rozetka + флаг Украины | /en/roasted-coffee и /en/roasted-coffee/brazil-santos-558-1 | чёрно-зелёный логотип ROZETKA + флаг UA рядом |
| 9 | Убрать заголовки колонок footer | низ любой страницы | только WE ACCEPT; нет Sitemap / Contact / Legal Information |
| 10 | Рабочая ссылка Telegram | низ любой страницы → иконка Telegram | ведёт на https://t.me/gs_coffee |
| 11 | Имя админа в чатах в верхнем регистре | /my-account/orders/ORD-202609-0001 | автор сообщения админа — GS COFFEE (в т.ч. на /ua/) |
| 12 | Контакты в footer писем | письмо на свой e-mail (регистрация) | в подвале письма оба адреса, телефон, адрес |
| 13 | Страница инвойсов не «разъезжается» | /my-account/invoices?tab=pending (и ширина 390px) | таблица из 4 колонок + меню действий, без горизонтальной прокрутки |
3. Подробные сценарии
Задача 1. Медиа-страница в статусе Draft не отображается
Публичная проверка (без входа).
- Откройте https://gscoffeetest.dev.inteli-dev.ru/en/verify/TEST2026-01
- В блоке лота
Brazil Santos Naturalнайдите раздел со страницами партии. Ожидаемо: показана только страница партииGS-2026-004. ЧерновикаGS-2026-005нет ни в счётчике, ни в списке, ни в галерее. - Откройте прямой адрес черновика:
/en/green-coffee/brazil-santos-natural/media/media-page-2Ожидаемо:404.
Каталог медиа-страниц (проверять под админом).
Раньше каталог отдавал админам все страницы, включая черновики, поэтому черновик был виден в списке. Сейчас черновики не попадают в каталог ни у кого.
- Войдите в
/admin(админ видит больше всех — самый строгий случай). - Откройте
/en/green-coffee/brazil-santos-natural/media. Ожидаемо:GS-2026-005(Draft) в списке отсутствует; показаны только опубликованные страницы (для этого лота — одна, поэтому происходит переход сразу наmedia-page-1). - То же для обжаренного кофе:
/en/roasted-coffee/brazil-santos-558-1/mediaОжидаемо:404— у этого лота нет ни одной опубликованной страницы. - Проверка «сеткой» (несколько опубликованных + черновик): временно переведите
GS-2026-005вPublished→ каталог покажет две карточки; затем вернитеDraft→ карточка снова исчезнет.
Проверка в админке.
- Admin → Lots →
Brazil Santos Natural→ Edit. - Прокрутите к блоку Media Pages: две записи —
GS-2026-004(Status = Published) иGS-2026-005(Status = Draft). - Гарантированный негативный тест: откройте
GS-2026-004→Status= Draft → Save → обновите/en/verify/TEST2026-01: блок со страницей партии и галереей исчезает полностью; каталог/mediaтоже отдаёт404. ВернитеStatus= Published.
Флаг «Visible to all users»
Это отдельное правило доступа, не связанное со статусом: страница с выключенным флагом доступна только авторизованным пользователям, у которых есть доступ к партии. Черновик не виден вообще никому в каталоге, независимо от этого флага.
Прямая ссылка на черновик
Сам админ по-прежнему может открыть черновик по прямому URL (/media/media-page-2) для предпросмотра. Из каталога и из списка он при этом не исчезает. Если предпросмотр не нужен — скажите, закроем и этот маршрут.
Код: routes/web.php (оба маршрута *.media.index используют published()->visibleTo()), resources/views/livewire/lots/{green,roasted}-lot-detail.blade.php (кнопка «View media pages»), resources/views/livewire/verify/verify-form.blade.php, app/Models/LotMediaPage.php (scopePublished, scopeVisibleTo).
Задача 2. Дата обновления политики конфиденциальности
- Откройте https://gscoffeetest.dev.inteli-dev.ru/en/privacy-policy
- Ожидаемо: под заголовком нет строки «Last updated / Обновлено …» и даты.
- Проверьте на другой локализации, например https://gscoffeetest.dev.inteli-dev.ru/ua/privacy-policy
Код: resources/views/pages/privacy-policy.blade.php.
Задача 3. Миниатюра изображения лота в PDF Invoice
Сначала выполните шаг 3.1
У лотов в существующих тестовых заказах нет изображений, поэтому перед проверкой нужно добавить обложку и выбрать миниатюру (это же нужно для задачи 4).
3.1. Подготовка лота Costa Rica Tarrazu Light Roast (id 6).
- Admin → Lots →
Costa Rica Tarrazu Light Roast→ Edit. - Блок Cover Image → поле Cover Photo → загрузите любой файл-картинку → Save.
- Снова откройте лот на редактирование → в блоке Cover Image появился селект Thumbnail image (он подтягивает обложку и изображения галереи).
- Выберите Cover image → Save.
3.2. Сгенерировать PDF.
- Admin → Invoices →
INV-202608-0005(заказORD-202608-0005, тот самый лот). - В строке справа → Generate PDF → подтвердите. Появится действие Download PDF.
- Нажмите Download PDF (откроется в новой вкладке) и посмотрите таблицу позиций. Ожидаемо: первая колонка называется
Imageи содержит фото лота; заголовок колонки переведён на язык инвойса.
Если PDF уже сгенерирован
Действие Generate PDF видно только пока PDF не создан. Для повторной генерации удалите существующий PDF (или обратитесь к разработчику, чтобы очистить поле PDF File).
Код: resources/views/pdf/invoice.blade.php, app/Models/OrderItem.php::thumbnailFilePath(), lang/*/invoices.php (ключ image).
Задача 4. Выбор миниатюры лота и её отображение в заказах
4.1. Выбор в админке — выполняется в блоке Cover Image (см. шаг 3.1 выше). Этот селект добавлен и на страницу создания лота, и на страницу редактирования.
4.2. Список заказов клиента.
- Admin → Users →
aigen.chernogorsk@yandex.ru→ Login as user → Continue. - Откройте
/my-account/orders. - Ожидаемо: в первой колонке каждой строки — миниатюра 48×48 (та, что выбрана у лота) и под номером заказа — название лота. Если изображения нет, вместо него серая заглушка.
- Заказы без изображения (
ORD-202609-0001/0002) выглядят как раньше — с заглушкой.
4.3. Страница заказа. Откройте /my-account/orders/ORD-202608-0005 — миниатюра и заголовок лота в строке позиции.
4.4. PDF. Список /my-account/invoices → меню ⋮ More actions → Download PDF (если PDF сгенерирован админом, см. 3.2).
Приоритет изображения
- выбранная в админке миниатюра → 2) первое изображение прикреплённой страницы партии → 3) обложка лота.
Код: app/Filament/Resources/LotResource.php (packagingImageOptions, селект thumbnail_image), app/Models/Lot.php, app/Models/Order.php, resources/views/livewire/dashboard/order-list.blade.php.
Задача 5. YouTube и почта в footer
- Откройте https://gscoffeetest.dev.inteli-dev.ru/en/ и прокрутите до подвала.
- Ожидаемо: рядом с иконками соцсетей есть ссылка YouTube →
https://www.youtube.com/@GSCOFFEE-TARRAZU(открывается в новой вкладке). - В блоке контактов — две почты:
sales@gscoffee.crиinfo@gscoffee.cr. - Продублируйте проверку на другой локализации, например
/ua/.
Код: resources/views/livewire/layout/footer.blade.php, config/gscoffee.php (seller.info_email, social.youtube).
Задача 6. Примечания серийных номеров на всех локализациях
6.1. Где редактировать.
- Admin → Serial Numbers →
TEST2026-01→ Edit. - Раздел Notes — это вкладки языков: English, Українська, Русский, Français, Deutsch, Español, Polski, 中文. В английской вкладке должен быть ранее сохранённый текст
Test note serial number level(старые текстовые заметки автоматически переехали в языковую вкладкуen). - Впишите в Українська текст, например
Примітка українською (QA)→ Save.
6.2. Проверка на сайте.
- https://gscoffeetest.dev.inteli-dev.ru/ua/verify/TEST2026-01 → блок Note показывает украинский текст.
- https://gscoffeetest.dev.inteli-dev.ru/en/verify/TEST2026-01 → показывает английский текст.
- Если перевод языка не заполнен — выводится значение языка по умолчанию (английский), пустой строки не будет.
6.3. Те же вкладки есть на всех уровнях иерархии (проверьте по одному, что вкладки языков есть везде):
| Уровень | Где в админке | Приоритет |
|---|---|---|
| Серийный номер | Serial Numbers → Edit → Notes | 1 (высший) |
| Страница партии (media page) | Lots → Edit → Media Pages → Notes | 2 |
| Лот | Lots → Edit → Serial Number Notes | 3 |
| Глобальные настройки | Serial Number Notes (/admin/serial-number-settings) | 4 (низший) |
У каждого уровня есть переключатель Ignore priority — включённая заметка перебивает все остальные.
6.4. Убрать за собой (необязательно). Очистите украинскую вкладку и сохраните — заметка вернётся к английской.
Код: app/Support/Translations.php, app/Filament/Support/NotesField.php, app/Models/SerialNumber.php::resolvedNote(), миграция 2026_09_18_000002_make_serial_number_notes_translatable.php.
Задача 7. Счётчик заказов у клиента после удаления заказа админом
7.1. Убедиться, что счётчик есть.
- Admin → Users →
aigen.chernogorsk@yandex.ru→ Login as user → Continue. - На странице
/my-accountв левом меню у пункта My Orders — красный бейдж (сейчас у этого клиента 5 непрочитанных). - Запомните число.
7.2. Удалить заказ.
- Нажмите Stop impersonating (вернётесь в
/admin). - Admin → Orders →
ORD-202608-0002→ в строке Delete → подтвердите. - Ожидаемо: удалён не только заказ: удалены позиции, инвойс и «осиротевшая» запись уведомления.
7.3. Проверить счётчик.
- Снова Login as user для того же клиента (или просто обновите страницу, если сессия ещё активна).
- Ожидаемо: бейдж у My Orders стал на 1 меньше (5 → 4). Заказ пропал из списка, уведомления по нему нет.
Код: app/Services/UserNotificationService.php (countsFor, REFERENCE_SOURCES), resources/views/components/layouts/dashboard.blade.php.
Задача 8. Настоящий логотип Rozetka и флаг Украины
Тестовые лоты со ссылкой Rozetka: ethiopia-yirgacheffe-grade-1 (green) и brazil-santos-558-1 (roasted).
- Карточка в каталоге: откройте https://gscoffeetest.dev.inteli-dev.ru/en/green-coffee и https://gscoffeetest.dev.inteli-dev.ru/en/roasted-coffeeОжидаемо: на карточке лота — маленькая круглая иконка ROZETKA (чёрный круг, зелёная «R», настоящий mini-logo) и сразу за ней маленький флаг Украины.
- Страница лота: https://gscoffeetest.dev.inteli-dev.ru/en/green-coffee/ethiopia-yirgacheffe-grade-1 и https://gscoffeetest.dev.inteli-dev.ru/en/roasted-coffee/brazil-santos-558-1Ожидаемо: кнопка
Buy on ROZETKAс тем же логотипом и флагом; ссылка ведёт наhttps://rozetka.com.ua/ua/seller/eml-home/. - Смена ссылки: Admin → Lots → лот → блок ROZETKA Availability → поле ROZETKA URL. Очистите и сохраните — логотип с флагом исчезнут со страницы лота.
Код: public/images/rozetka/rozetka-logo.svg, четыре представления resources/views/livewire/lots/{green,roasted}-lot-{card,detail}.blade.php, resources/views/components/country-flag.blade.php.
Задача 9. Заголовки колонок в подвале
- Прокрутите вниз любую страницу, например https://gscoffeetest.dev.inteli-dev.ru/en/
- Ожидаемо: над колонками нет заголовков Sitemap / Navigation, Contact, Legal Information. Заголовок остался только у блока способов оплаты —
WE ACCEPT.
Код: resources/views/livewire/layout/footer.blade.php.
Задача 10. Ссылка Telegram
- В подвале сайта найдите иконку Telegram.
- Ожидаемо: ссылка —
https://t.me/gs_coffee(проверьте через «Открыть ссылку в новой вкладке» или наведя курсор).
Код: config/gscoffee.php (social.telegram, social.telegram_url).
Задача 11. Имя администратора в чатах — GS COFFEE
В заказах уже есть сообщения администратора: заказ ORD-202609-0001 (клиент aigen.chernogorsk@yandex.ru) и ORD-202609-0002 (клиент serzhikgsv@icloud.com).
- Admin → Users →
aigen.chernogorsk@yandex.ru→ Login as user → Continue. - Откройте
/my-account/orders/ORD-202609-0001→ секция сообщений/чата. Ожидаемо: над сообщением администратора подписьGS COFFEEзаглавными (а не личное имя вида «Evgeny …» / «Admin»). - Проверьте локализацию:
/ua/my-account/orders/ORD-202609-0001— тожеGS COFFEE. - Ответить самому админу: Admin → Orders →
ORD-202609-0001→ Reply → введите текст → отправьте. Обновите клиентскую страницу — новый ответ тоже подписанGS COFFEE.
Чат команд и фонда
Аналогичная правка для чата команд/фонда сделана на ветке feature/team-fund-donations (lang/*/team-fund.php, chat-index.blade.php). На стенде, пока он на dev, этот чат проверяется только после переключения ветки.
Код: resources/views/livewire/dashboard/order-detail.blade.php, lang/*/orders.php и lang/*/quotes.php (ключ admin).
Задача 12. Контакты в footer всех писем
Все 20 шаблонов писем используют общий подвал, поэтому достаточно проверить одно письмо.
Способ А — регистрация (рекомендуется).
- Откройте https://gscoffeetest.dev.inteli-dev.ru/en/register и зарегистрируйтесь на свой e-mail.
- Письмо
Welcomeотправляется через очередь (gscoffee-queue), поэтому подождите до ~1 минуты (проверьте папку «Спам»). - Ожидаемо в подвале письма: подпись
GS Coffee · gscoffee.cr, два адресаsales@gscoffee.crиinfo@gscoffee.cr, телефон, WhatsApp и адрес, а также копирайт.
Способ Б — письмо по инвойсу.
- Admin → Invoices → инвойс со статусом Draft → действие Send to Client → подтвердите.
- Письмо уйдёт на e-mail клиента из заказа (для
aigen.chernogorsk@yandex.ru/serzhikgsv@icloud.com— если у вас есть к ним доступ).
Код: resources/views/mail/layout.blade.php (общий подвал), config/gscoffee.php.
Задача 13. Страница инвойсов — кнопки больше не «разъезжаются»
Сейчас у клиента aigen.chernogorsk@yandex.ru семь инвойсов, но готовых к оплате нет: инвойсы в статусе Draft действий не показывают. Поэтому сначала подготовьте один инвойс.
13.1. Подготовка (админ).
- Admin → Invoices →
INV-202608-0005→ Edit →Status= Sent → Save. - В строке
INV-202608-0005→ Generate PDF → подтвердите.
13.2. Проверка на десктопе.
- Login as user для
aigen.chernogorsk@yandex.ru. - Откройте
/my-account/invoices?tab=pending. - Ожидаемо:
- компактная таблица из 4 колонок:
Invoice,Total,Status,More actions— горизонтальной прокрутки нет; - одна крупная кнопка Pay Now и рядом круглая кнопка ⋮;
- по клику на ⋮ раскрывается меню More actions:
Pay Now (Stripe),Pay with balance(или серая неактивная подсказка, если на балансе не хватает средств),Download PDF; - меню не обрезается и не выходит за карточку; шапка таблицы со скруглёнными углами.
- компактная таблица из 4 колонок:
- Переключите таб All invoices — тот же вид для всех инвойсов.
13.3. Проверка на мобильном.
- Сузьте окно до ~390px (или откройте DevTools → режим устройства).
- Ожидаемо: таблица заменяется на карточки «один инвойс = одна карточка»; статус справа, сумма ниже, действия прижаты к правому краю, меню ⋮ полностью помещается внутри карточки.
13.4. Вернуть за собой (необязательно). Admin → Invoices → INV-202608-0005 → Status = Draft.
Код: resources/views/livewire/dashboard/invoice-list.blade.php, resources/views/components/ui/invoice-actions.blade.php, lang/*/invoices.php (more_actions).
4. Автоматические тесты
Если кроме ручной проверки нужен машинный прогон:
docker exec gscoffee-app sh -c 'cd /var/www/html && php artisan test --compact'Ожидаемо: 112 passed на ветке dev (92 passed на feature/team-fund-donations). Новые тесты этой партии:
| Файл | Что покрывает |
|---|---|
tests/Feature/Lots/DraftMediaPageVisibilityTest.php | задача 1 (страница проверки + каталоги green/roasted для админа) |
tests/Feature/Lots/LotThumbnailTest.php | задачи 3, 4 |
tests/Feature/SerialNumbers/TranslatableNotesTest.php | задача 6 |
tests/Feature/Dashboard/OrderNotificationCounterTest.php | задача 7 |
tests/Feature/Dashboard/InvoiceListDesignTest.php | задача 13 |
tests/Feature/Layout/FooterAndLegalTest.php | задачи 2, 5, 9, 10, 12 |
tests/Feature/Order/OrderChatAuthorTest.php | задача 11 |
Точечный прогон, например:
docker exec gscoffee-app sh -c 'cd /var/www/html && php artisan test --compact tests/Feature/Lots'5. Нюансы и восстановление данных
- Задача 7 удаляет заказ. Используйте
ORD-202608-0002— это демо-заказ. Если он нужен, восстановите его через сидер/разработчика. - Задача 13 меняет статус инвойса на Sent — верните Draft, если стенд должен остаться в исходном виде.
- Задача 6 добавляет перевод заметки — очистите украинскую вкладку после проверки.
- Задача 3/4 требует загрузить картинку в лот
Costa Rica Tarrazu Light Roast. Это безопасно, но меняет демо-данные. - Пересборка фронтенда не требуется: стили, использованные в этих правках, уже есть в собранном CSS стенда.
- Миграции
2026_09_18_000001_add_thumbnail_image_to_lotsи2026_09_18_000002_make_serial_number_notes_translatableна стенде применены. На других окружениях перед проверкой нужно выполнитьphp artisan migrate— текстовые заметки автоматически станут переводом языкаen.