Загрузка файлов с компьютера снова работает: форма собиралась уже после блокировки поля файла, и браузер отправлял пустой запрос (ошибка 422)

Этот коммит содержится в:
2026-09-27 16:20:58 +09:00
родитель b7c87867fb
Коммит af9cae85de
2 изменённых файлов: 13 добавлений и 1 удалений
+10
Просмотреть файл
@@ -1,3 +1,4 @@
from pathlib import Path
from urllib.parse import unquote
import pytest
@@ -186,3 +187,12 @@ def test_live_status(logged_in):
data = logged_in.get("/live/status").json()
assert data["ok"] is True
assert {vm["name"] for vm in data["vms"]} == {"web01", "db01"}
def test_uploader_collects_file_before_disabling_input():
"""Заблокированное поле браузер не отправляет: загрузка уходила пустой (44 байта) и получала 422."""
script = (Path(__file__).resolve().parents[1] / "web" / "static" / "panel.js").read_text()
uploader = script[script.index("function wireUploader"):script.index("/* ---------------------------------------------------- operation page */")]
assert "input.disabled = active" in uploader
assert uploader.index("new FormData(form)") < uploader.index("setActive(true)")
assert "xhr.send(data)" in uploader