# Чек-лист ручного тестирования preview > Вспомогательный документ к `docs/archive/plan-testing-preview.md` и e2e-тестам > (`web/e2e/`, `pnpm --dir web test:e2e`). Автоматизированная часть закрывает > «нет падений/ошибок»; здесь — то, что руками, и что Playwright не покрывает. > > Перед прогоном: `pnpm --dir web build`, поднять локально `web/` (dev или build > → `node scripts/serve-static.mjs`). > > Критерий приёмки большинства пунктов: **нет зависит, нет «залипания», > сообщения об ошибках человекочитаемые**. ## A. Краевые PNG-файлы > Фикстуры для этого раздела генерируются скриптом: `pnpm generate:fixtures` → > `tests/fixtures/manual-edge-cases/`. - [ ] Огромное изображение (мегапиксели) — загрузка не висит, прогресс есть. - [ ] PNG 1×1 — инструменты не падают (проверено авто: flip-png, см. suite). - [ ] PNG с полупрозрачностью/чётким альфа-краёв (чёрно-белая шахматка) — remove-background, feather-edges, clean-edges дают корректные края. - [ ] Палитровый PNG (индексированные цвета) — конвертируется/анализируется. - [ ] Анимированный/APNG, если попадётся — не ломает конвейер. - [ ] Повреждённый/не-PNG файл — понятная ошибка, нет краша (авто-чека в pipeline.spec.ts). - [ ] PNG с битой CRCh / 16-bit — как ведут себя анализаторы (ориентация, размер, прозрачность). ### Файлы (`tests/fixtures/manual-edge-cases/`) | Файл | Описание | | ------------------------ | ------------------------------------------------------------ | | `1x1.png` | Минимальное изображение 1×1, сплошной красный | | `1x1-transparent.png` | 1×1, полностью прозрачный (alpha=0) | | `2x2-extreme.png` | 2×2: чёрный, белый, полупрозрачный красный, прозрачный синий | | `1024x1024-checker.png` | 1024×1024, шахматка ≈1 мегапиксель | | `1920x1080-gradient.png` | 1920×1080, градиент ≈2 мегапикселя | | `alpha-checkerboard.png` | 64×64, чёрно-белая шахматка с чередующейся альфой | | `alpha-gradient.png` | 128×64, альфа-градиент 0→255 по ширине | | `sparse-alpha.png` | 100×100, 10% пикселей с alpha=0 | | `all-black-opaque.png` | 64×64, сплошной чёрный | | `all-white-opaque.png` | 64×64, сплошной белый | | `all-transparent.png` | 64×64, полностью прозрачное | | `palette-4colors.png` | 32×32, палитровый 4 цвета (RGBW) | | `palette-256.png` | 64×64, палитровый полная палитра 256 цветов | | `16bit-subtle.png` | 32×32, 16-bit RGBA, тонкий градиент | | `noise-pattern.png` | 100×100, шумовая текстура | | `1x4000-strip.png` | 1×4000, длинная вертикальная полоса | | `4000x1-strip.png` | 4000×1, широкая горизонтальная полоса | | `corrupt-bad-crc.png` | 4×4, повреждённый CRC в IDAT | | `truncated.png` | Обрезанный файл (только PNG-заголовок + часть IHDR) | | `fake-png.txt` | Текстовый файл «.png» — не-PNG | ## B. Края параметров - [ ] Экстремальные значения слайдеров (0 и max) в blur/sharpen/pixelate — не «залипает» running. - [ ] Пустые/NaN поля (напр. width/height) — санитизация (silent repair), нет красного alert-текста в виде `errors.*`. - [ ] Невалидные цвета в плашках/градиентах (мисс-спелл `#xyz`, короткие hex, именные цвета) — silent repair или понятная ошибка. - [ ] Пустой text-source на text-инструменте — run пропускается, ошибок нет (кейс из плана п.14). - [ ] Смена параметра после Reset — авто-перезапуск работает (Debounce 200 мс). ## C. Буфер обмена и drag-n-drop - [ ] В реальном браузере кнопка copy на текстовом результате (png-to-base64 и т.п.) кладёт текст в буфер (в Playwright не тестируем из-за permissions). - [ ] Drag-n-drop файла на dropzone страницы инструмента (не только файл-диалог) — UX-ощущения и корректность. ## D. Производительность и отзывчивость - [ ] Долгие авто-рераны на больших картинках (jpeg-artifacts, dithering, quantize на 4К) — UI не фризит, канселяция/дебаунс срабатывает. - [ ] Скролл страницы при длинных настройках (например, text-инструменты) — нет залипаний, панели не прыгают. - [ ] Вкладка не «съедает» память при 10+ повторах blur/sharpen на мегапикселе (утечек blob-URL/bitmap быть не должно). ## E. Визуальный слой (доделываем по ходу) - [ ] Сетки/выравнивание на брейкпоинтах 640 / 800 / 1100 (mobile/tablet/ desktop) на всех 4 маршрутах. - [ ] Тема light/dark: контраст вердиктов (Yes/No), статус «LIVE PREVIEW», мета-инфо бликов не даёт. - [ ] Иконки в каталоге на всех категориях — не «бьются» (missing icon). - [ ] Язык RU/EN на превью-страницах — переключение без регресса рендера. ## F. Субъективная корректность - [ ] dithering / two-colors / quantize — результат «по ощущениям» соответствует описанию. - [ ] watermark-tile / add-text / date-stamp на кириллице — рендер текста корректный (не «кракозябры»). - [ ] remove-background на сложной полупрозрачности — края не «звенят». ## Как долго - Полный прогон: ~40 минут (все разделы, включая мегапиксели и 4К) в двух браузерах. - Быстрый смоук (< 15 мин): A (кроме мегапикселей), B (выборочно), C, F выборочно, G обязательно.