- Golden traces: docs/golden_traces/v1/, format protocol/request/context/result - trace_to_golden bin, golden_traces_v1_validate test - Makefile: make golden, make test-protocol - npm scripts: golden, test-protocol - CI: .github/workflows/protocol-check.yml - PROTOCOL_V1.md, PROTOCOL_V2_PLAN.md - Policy for updating golden traces in README Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# PAPA YU Tests
|
|
|
|
## Структура
|
|
|
|
```
|
|
tests/
|
|
├── README.md # Этот файл
|
|
└── fixtures/ # Тестовые фикстуры (минимальные проекты)
|
|
├── minimal-node/ # Node.js проект без README
|
|
└── minimal-rust/ # Rust проект без README
|
|
|
|
docs/golden_traces/ # Эталонные трассы (регрессия, без raw_content)
|
|
├── README.md
|
|
└── v1/ # Protocol v1 fixtures
|
|
001_fix_bug_plan.json
|
|
002_fix_bug_apply.json
|
|
...
|
|
```
|
|
|
|
## Юнит-тесты (Rust)
|
|
|
|
Запуск всех юнит-тестов:
|
|
|
|
```bash
|
|
cd src-tauri
|
|
cargo test
|
|
```
|
|
|
|
Текущие тесты покрывают:
|
|
- `golden_traces_v1_validate` — валидация fixtures в `docs/golden_traces/v1/` (schema_version, schema_hash, parse, validate_actions, NO_CHANGES)
|
|
- `detect_project_type` — определение типа проекта
|
|
- `get_project_limits` — лимиты по типу проекта
|
|
- `is_protected_file` — защита служебных файлов
|
|
- `is_text_allowed` — фильтр текстовых файлов
|
|
- `settings_export` — экспорт/импорт настроек
|
|
|
|
## E2E сценарий (ручной)
|
|
|
|
См. `docs/E2E_SCENARIO.md` для пошагового сценария:
|
|
|
|
1. Запустить приложение: `npm run tauri dev`
|
|
2. Выбрать одну из фикстур (например, `tests/fixtures/minimal-node`)
|
|
3. Запустить анализ
|
|
4. Применить рекомендованные исправления
|
|
5. Проверить, что README.md создан
|
|
6. Откатить изменения (Undo)
|
|
7. Проверить, что README.md удалён
|
|
|
|
## Тестовые фикстуры
|
|
|
|
### minimal-node
|
|
|
|
Минимальный Node.js проект:
|
|
- `package.json` — манифест пакета
|
|
- `index.js` — точка входа
|
|
- **Нет README** — должен быть предложен при анализе
|
|
|
|
### minimal-rust
|
|
|
|
Минимальный Rust проект:
|
|
- `Cargo.toml` — манифест пакета
|
|
- `src/main.rs` — точка входа
|
|
- **Нет README** — должен быть предложен при анализе
|
|
|
|
## Автоматизация E2E (будущее)
|
|
|
|
Планируется использовать:
|
|
- **Tauri test** — для тестирования команд
|
|
- **Playwright** — для тестирования UI
|