Дмитрий
|
44a1b21421
|
feat(rules): add Signal validators (Domain, Phone, SmsSender) with comprehensive datasets
- app/Rules/SignalIdentifier/DomainIdentifier.php — regex
^[a-z0-9-]+(\.[a-z0-9-]+)+$ (нижний регистр, без протокола/пути).
- app/Rules/SignalIdentifier/PhoneIdentifier.php — regex ^7\d{10}$
(11 цифр, начинается с 7).
- app/Rules/SignalIdentifier/SmsSenderRule.php — 1-30 символов
[A-Za-z0-9_-]; отвергает 11-значные номера (поставщик блокирует
физический телефон в роли отправителя — alert "Важно!" в форме
создания SMS-проекта).
- tests/Feature/Rules/SignalValidatorsTest.php — 24 теста с datasets:
• Domain: 4 valid + 6 invalid (case, no-TLD, spaces, protocol, path, double-dot)
• Phone: 3 valid + 6 invalid (8-prefix, length, plus, spaces, letters)
• SmsSender: alpha+numeric short, 11-digit blocked, length>30 blocked,
empty (с required), special chars blocked
Quirk: Laravel skips non-implicit rules для пустых строк. Тест empty
использует связку 'required' + правило (как в реальном FormRequest).
Pest: 499 / 497 passed / 2 skipped (473 + 24 новых = 497).
Larastan: 0 errors. Pint passed.
Spec: §3.1
Plan: Task 12
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-10 17:05:19 +03:00 |
|