# План тестирования: загрузка функций из архива (Fission Console) Дата: 2026-05-04 ## Цели - Проверить корректность загрузки функций из архива для всех поддерживаемых языков (Python, Node.js, Ruby, PHP) - Проверить работу линтера, валидацию entrypoint, соответствие языка, структуру архива - Проверить обработку ошибок, edge-cases, граничные размеры ## Категории тестов ### 1. Валидные случаи - [ ] Python: demo.py с def main(), entrypoint demo.main - [ ] Node.js: demo.js с module.exports = main, entrypoint demo.main - [ ] Ruby: demo.rb с def main, entrypoint demo.main - [ ] PHP: demo.php с function main, entrypoint demo.main - [ ] Архив с несколькими файлами (несколько языков, только один выбран) - [ ] Архив с подпапками (файл demo.py внутри src/) - [ ] Entrypoint с нестандартным именем (myfunc.py, entrypoint myfunc.main) ### 2. Ошибочные случаи - [ ] Нет файла с нужным именем (entrypoint demo.main, а demo.py отсутствует) - [ ] Нет функции с нужным именем (demo.py есть, но нет def main) - [ ] Язык выбран Python, а в архиве только .js - [ ] Язык выбран Node.js, а в архиве только .py - [ ] Entrypoint пустой - [ ] Entrypoint без точки ("main") - [ ] Архив пустой - [ ] Архив > 100 KB - [ ] Суммарный размер файлов > 100 KB (zip bomb) - [ ] Файл с синтаксической ошибкой (Python, JS, Ruby, PHP) ### 3. Пограничные случаи - [ ] demo.py ровно 100 KB - [ ] Архив с demo.py и demo.js, язык Python, entrypoint demo.main - [ ] Архив с demo.py и demo.js, язык Node.js, entrypoint demo.main - [ ] demo.py с def main(event, context) - [ ] demo.py с def main() и def main2() - [ ] demo.py с def main : (без скобок) - [ ] demo.py с декоратором @fission_entry - [ ] demo.py с не-ASCII именем функции ### 4. UI/UX - [ ] Проверка сообщений линтера (ошибки, предупреждения, OK) - [ ] Проверка отображения имени архива, entrypoint, языка - [ ] Проверка что после ошибки можно загрузить исправленный архив ## Автоматизация - Тесты реализовать на Go (backend), Python (pytest), JS (playwright) — по необходимости - Для каждого теста: архив, ожидаемый результат, шаги UI/REST, ожидаемое сообщение --- ## Ход выполнения - [ ] Подготовить тестовые архивы - [ ] Реализовать автотесты (минимум: backend REST, опционально UI) - [ ] Зафиксировать результаты в doc/reports/