mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-03-24 20:12:04 +00:00
48 lines
2.9 KiB
Markdown
48 lines
2.9 KiB
Markdown
## ADDED Requirements
|
||
|
||
### Requirement: Сущность адаптера логирования
|
||
Адаптер MUST предоставлять `TalkerCherryPickObserver`, реализующий `CherryPickObserver`.
|
||
|
||
#### Scenario: Доступность адаптера
|
||
- **WHEN** разработчик импортирует пакет адаптера
|
||
- **THEN** `TalkerCherryPickObserver` доступен для использования
|
||
|
||
### Requirement: Жизненный цикл наблюдателя
|
||
Наблюдатель MUST подключаться при создании scope и работать в течение жизненного цикла этого scope.
|
||
|
||
#### Scenario: Подключение наблюдателя
|
||
- **WHEN** observer передан при открытии scope
|
||
- **THEN** все DI‑события в scope направляются в Talker
|
||
|
||
### Requirement: Маппинг уровней логирования
|
||
Адаптер MUST маршрутизировать DI‑события в Talker с корректными уровнями (info/warning/verbose/handle).
|
||
|
||
#### Scenario: Диагностика
|
||
- **WHEN** DI‑ядро генерирует диагностическое событие
|
||
- **THEN** адаптер логирует его как verbose
|
||
|
||
#### Scenario: Ошибка резолва
|
||
- **WHEN** DI‑ядро генерирует ошибку
|
||
- **THEN** адаптер логирует ее через `handle` и включает stack trace при наличии
|
||
|
||
### Requirement: Ненавязчивость поведения
|
||
Адаптер MUST быть наблюдателем и не изменять DI‑поведение, жизненный цикл или кэширование.
|
||
|
||
#### Scenario: Разрешение с адаптером
|
||
- **WHEN** адаптер подключен
|
||
- **THEN** резолв и поведение DI не изменяются, кроме появления логов
|
||
|
||
### Requirement: Ошибки логирования
|
||
Адаптер MUST передавать ошибки логирования как есть и не содержит собственной обработки исключений.
|
||
|
||
#### Scenario: Исключение в Talker
|
||
- **WHEN** Talker выбрасывает исключение при логировании
|
||
- **THEN** исключение пробрасывается вызывающему коду
|
||
|
||
### Requirement: Точки расширения
|
||
Адаптер MUST позволять использовать пользовательские настройки Talker без изменения адаптера.
|
||
|
||
#### Scenario: Кастомная конфигурация Talker
|
||
- **WHEN** пользователь передает кастомный Talker
|
||
- **THEN** адаптер использует переданную конфигурацию для всех DI‑событий
|