mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
feat: add source aware resolver, update reset, update generator
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# План: линтеры, тесты и качество кодовой базы
|
||||
|
||||
> Статус: **draft — Q0–Q4 готовы к ревью; Q5 — следующий этап**.
|
||||
> Статус: **draft — Q0–Q5 готовы к ревью; Q6 — следующий этап**.
|
||||
>
|
||||
> Источник: `docs/backlog.md`, аудит конфигурации `web/`, e2e-тестов и
|
||||
> инфраструктурных скриптов. Q0–Q4 выполнены; Q5–Q8 выполняются отдельными
|
||||
> инфраструктурных скриптов. Q0–Q5 выполнены; Q6–Q8 выполняются отдельными
|
||||
> атомарными шагами.
|
||||
>
|
||||
> Цель: сделать качество кодовой базы воспроизводимым, убрать ложную «зелёность»
|
||||
@@ -45,14 +45,10 @@
|
||||
docs и production build; deploy выполняет его перед сборкой.
|
||||
- `i18n/dict-consistency` даёт 0 warnings на текущем baseline; отдельный debt —
|
||||
4 unused design tokens от token audit.
|
||||
- В e2e остаются фиксированные числа, точные тексты, CSS-классы и
|
||||
`alt`-селекторы: `web/e2e/catalog.spec.ts:4-55`,
|
||||
`web/e2e/text-and-verdicts.spec.ts:52-101`.
|
||||
- Backlog и реализация расходятся по генераторам: продуктовая заметка требует
|
||||
автоматический запуск без `Generate`-кнопки (`docs/backlog.md:115-122`), а
|
||||
тест ожидает кнопку (`web/e2e/generators.spec.ts:8-16`).
|
||||
- `resize-png` и `crop-png` начинают с нулевых размеров и требуют отдельного
|
||||
продуктового решения (`web/src/lib/registry/geometry.ts:191-297`).
|
||||
- E2E-контракт использует semantic locators и общий source-aware schema
|
||||
resolver; активных known-issue `test.fixme` нет.
|
||||
- `ToolError` хранится как key/vars и переводится только при выводе; смена
|
||||
локали обновляет уже видимый alert.
|
||||
|
||||
## 3. Этапы выполнения
|
||||
|
||||
@@ -175,27 +171,29 @@ pnpm --dir web test:e2e
|
||||
|
||||
**Результат:** изменение формулировки, класса или порядка элементов не ломает
|
||||
поведенческий тест без изменения пользовательского контракта; следующий этап —
|
||||
Q5.
|
||||
Q6.
|
||||
|
||||
### Q5. Закрыть известные preview-баги
|
||||
|
||||
**Оценка:** M. **Зависимости:** Q4.
|
||||
**Статус:** выполнен. **Проверено:** unit, Q5 E2E smoke и полный `pnpm verify`
|
||||
проходят; активных known-issue `test.fixme` нет. **Оценка:** M–L.
|
||||
**Зависимости:** Q4.
|
||||
|
||||
1. Выбрать поведение `resize-png` и `crop-png` при загрузке изображения:
|
||||
source-aware defaults, осмысленные статические defaults или отдельный
|
||||
автоматический repair.
|
||||
2. Исправить registry/schema и только после этого снять соответствующие
|
||||
`test.fixme`.
|
||||
3. Зафиксировать auto-run для генераторов и переписать e2e под фактическое
|
||||
автоматическое поведение; кнопку Generate не добавлять без отдельного UX
|
||||
решения.
|
||||
4. Определить семантику Reset: очистка результата, немедленный повторный run или
|
||||
временное отключение auto-run.
|
||||
5. Перенести проверку локализованной ошибки на независимый детерминированный
|
||||
invalid-input сценарий.
|
||||
- Добавлен общий opt-in `defaultFromSource` resolver в `registry-schema`: он
|
||||
принимает source dimensions, обновляет только source-aware поля при upload и
|
||||
используется в UI, executor и worker. `resize-png` и `crop-png` получают
|
||||
размеры текущего source; static/generator/text schemas не затронуты.
|
||||
- Reset сохраняет source/text, восстанавливает source-aware defaults и запускает
|
||||
deferred auto-run через debounce.
|
||||
- Генераторы проверены в auto-run без кнопки Generate; кнопка не добавляется.
|
||||
- `ToolError` хранится как key/vars, переводится derived-значением при выводе и
|
||||
обновляется при смене локали. E2E использует независимый invalid pixel-count
|
||||
сценарий.
|
||||
- Resize/crop, generator, Reset и localization fixme сняты; Q6 начинает
|
||||
расширение покрытия, а не исправление этих контрактов.
|
||||
|
||||
**Готово, когда:** каждый known issue либо исправлен и покрыт зелёным тестом,
|
||||
либо явно перенесён в отдельную продуктовую задачу с владельцем и критерием.
|
||||
**Результат:** Q5 known issues закрыты и отражены в `docs/backlog.md` и
|
||||
`docs/checklist-manual-testing.md`; следующий этап — Q6.
|
||||
|
||||
### Q6. Расширение unit и browser-покрытия
|
||||
|
||||
@@ -373,9 +371,9 @@ refactor, новые i18n-правила и исправление продук
|
||||
|
||||
## 7. Решения, которые нужно принять на ревью
|
||||
|
||||
- Какой default выбрать для `resize-png` и `crop-png` при загрузке?
|
||||
- Подтверждаем ли auto-run генераторов без кнопки Generate?
|
||||
- Что именно должен делать Reset при включённом auto-run?
|
||||
- Какой независимый invalid-input сценарий заменит resize-dependent error test?
|
||||
- Какие executor/worker/fallback сценарии войдут в первый Q6 coverage PR?
|
||||
- Какие special PNG fixtures обязательны для baseline?
|
||||
- Нужны ли browser/mobile matrix и visual snapshots до coverage thresholds?
|
||||
- Какие unused design tokens можно удалить, а какие должны остаться?
|
||||
- Какие browser/e2e проверки должны быть обязательными для PR, а какие —
|
||||
отдельным ночным прогоном?
|
||||
|
||||
Reference in New Issue
Block a user