AnRil
|
36085f225f
|
test: expand coverage 53 → 135 (+82 tests)
Аудит тестов выявил критические пробелы в покрытии. Расширили
существующие файлы и добавили два новых:
Новые файлы:
- src/main/validate.test.ts (59) — security-boundary IPC layer вообще
не имел тестов. Покрывает NaN/Infinity, range edge cases, тип-
сабверсии, partial-patch semantics, quietHours regex+dedup.
Фиксирует контракт «strict для required, lenient для optional
defaults» (input принимает enabled:'yes' → true, patch строгий).
- src/renderer/src/lib/icon-choices.test.ts (3) — SAMPLE_EXERCISES.icon
⊆ ICON_CHOICES (иначе fallback-Activity на первом запуске).
Расширения:
- format.test.ts: NaN/Infinity guard, EN-локаль.
- history.test.ts: DST-safe инвариант (unique keys, monotonic),
plannedRepsToday, future-dated entries, mixed actions.
- i18n.test.ts: dict parity RU↔EN (с правильным skip для RU-only
*_few CLDR-категории), regex-injection в var-значениях,
weekday.short.* parity.
Рефакторинг:
- ICON_CHOICES вынесен в src/renderer/src/lib/icon-choices.ts
(без JSX) — теперь whitelist импортируется из любого слоя без
React-зависимости. icon.tsx реэкспортирует для обратной
совместимости.
|
2026-05-19 18:15:37 +07:00 |
|