Document hard 0.2.2 release test
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# 2026-09-06: жёсткий полный тест релиза 0.2.2
|
||||
|
||||
## Объём проверки
|
||||
|
||||
Проверен опубликованный релиз `0.2.2`, commit `df0576a` на `origin/master`.
|
||||
|
||||
- frontend build;
|
||||
- весь Node test suite;
|
||||
- весь Python test suite с `-vv --tb=long`;
|
||||
- синтаксис всех исходных Python и JavaScript файлов;
|
||||
- runtime запуск Flask;
|
||||
- HTTP endpoints и раздача собранных бандлов;
|
||||
- отрицательные API-сценарии безопасности и целостности транзита.
|
||||
|
||||
## Результаты
|
||||
|
||||
- `npm run build` — PASS;
|
||||
- `npm test` — `10/10` PASS;
|
||||
- `python3 -m pytest tests/ -vv --tb=long` — `10/10` PASS;
|
||||
- `py_compile` — `22` Python-файла PASS;
|
||||
- `node --check` — `13` JavaScript-файлов PASS;
|
||||
- `git diff --check` — PASS;
|
||||
- `/health` — HTTP 200, тело `ok`;
|
||||
- `/` — HTTP 200;
|
||||
- `/file-picker/file-picker.esm.js` — HTTP 200;
|
||||
- `/file-picker/file-picker.iife.js` — HTTP 200;
|
||||
- `/upload-frontend/index.js` — HTTP 200;
|
||||
- Flask слушает `0.0.0.0:5000`.
|
||||
|
||||
## Отрицательные сценарии
|
||||
|
||||
Отдельный smoke-набор подтвердил:
|
||||
|
||||
- пустой `upload_refs` возвращает HTTP 400;
|
||||
- malformed JSON возвращает HTTP 400;
|
||||
- traversal-имя не попадает в сессию и не удаляет файл из буфера;
|
||||
- SSRF URL вне разрешённого prefix пропускается без pull;
|
||||
- валидный файл создаёт новую RAM-сессию;
|
||||
- файл переносится в RAM;
|
||||
- callback Layer 3 вызывается;
|
||||
- файл удаляется из mock buffer после успешного pull;
|
||||
- повторное чтение удалённого файла возвращает 404.
|
||||
|
||||
## Исправления harness во время проверки
|
||||
|
||||
Два первых запуска расширенного smoke-набора остановились в тестовом harness, не в приложении:
|
||||
|
||||
1. Для in-process Flask pull не был задан `httpx.WSGITransport`, поэтому backend получил `Connection refused`.
|
||||
2. Следующий запуск передал несуществующий `session`; API корректно вернул сценарий `Session not found` вместо создания сессии. Новая сессия создаётся при отсутствии поля `session`.
|
||||
|
||||
После исправления harness smoke-набор завершился `strict_negative_smoke=PASS`.
|
||||
|
||||
## Итог
|
||||
|
||||
Релиз `0.2.2` прошёл полный автоматический, синтаксический, runtime и отрицательный security-тест. Код не изменялся, поэтому версию не повышали.
|
||||
Reference in New Issue
Block a user