Files
image-gateway/docs/testing-checklist.md

58 lines
2.9 KiB
Markdown
Raw Normal View History

# Чек-лист тестирования
Для автоматической проверки критичных сценариев кеша используйте [e2e-tests.md](e2e-tests.md):
```bash
./scripts/test-e2e.sh
```
Этот чек-лист остается ручной проверкой полного поведения gateway.
## 1. Инфраструктура
- [x] Запуск: `docker compose -f docker-compose.dev.yml up -d --build`
- [x] Оба контейнера работают: `docker ps` показывает caddy + imgproxy
- [x] Логи Caddy: `docker compose -f docker-compose.dev.yml logs caddy` — нет ошибок
- [x] Логи imgproxy: `docker compose -f docker-compose.dev.yml logs imgproxy` — нет ошибок
- [x] Caddy слушает порт 8888: `curl -s -o /dev/null -w "%{http_code}" http://localhost:8888/` → 200
## 2. Базовые запросы
- [x] MISS (первый запрос) → 200, `Cache-Status: Souin; fwd=uri-miss; stored`
- [x] HIT (повторный запрос) → 200, `Cache-Status: Souin; hit`, время < 5ms
- [x] Несуществующий источник → imgproxy возвращает 500
## 3. Обработка изображений
- [x] `resize:fit:800:0:0` — изображение вписано в 800px по ширине
- [x] `resize:fill:400:300:0` — изображение 400x300, обрезано
- [x] `crop:200:200` — обрезка 200x200
- [x] `q:100` vs `q:10` — размер файла: 48931 vs 3910 (разница ~12x)
- [x] `format:webp``Content-Type: image/webp`
- [x] Комбинированные: `resize:fit:800:0:0/g:ce/q:75/format:webp`
- [x] `plain/{url}` — прямая передача URL
- [x] base64url-encoded source — работает
## 4. Unsigned режим
- [x] `/unsafe/resize:fit:100:0:0/...` → 200
- [x] Без `/unsafe/` → тоже 200 (ключи не заданы, подпись не проверяется)
> **Примечание:** Когда `IMGPROXY_KEY` и `IMGPROXY_SALT` пустые, imgproxy принимает любые URL (с и без `/unsafe/`). `/unsafe/` обязателен только при включённой подписи.
## 5. Кеш
- [x] Разные размеры = разные ключи кеша (не конфликтуют)
- [x] `Cache-Status` заголовок в каждом ответе
- [x] Ключ кеша содержит полный путь: `GET-http-localhost:8888-/unsafe/...`
## 6. Souin API (через Caddy admin :2019)
- [x] `GET /souin-api/souin/` — возвращает JSON-массив ключей
- [x] `PURGE /souin-api/souin/flush` — 204, кеш сброшен
- [x] `PURGE /souin-api/souin/{regex}` — 204, purge по regex работает
## 7. Останов
- [ ] `docker compose -f docker-compose.dev.yml down` — останавливает и удаляет контейнеры