Skip to content

Отказ от кастомных валидаторов в пользу штатных FormsFX - #25

Merged
vladcheck merged 1 commit into
mainfrom
vladcheck/no-custom-validation
Oct 6, 2026
Merged

vladcheck merged 1 commit into
mainfrom
vladcheck/no-custom-validation

Conversation

@vladcheck

Copy link
Copy Markdown
Owner

Что сделано

  • Удалён validation/utils/ValidatorHelpers.java — все правила переписаны на штатные валидаторы FormsFX: StringLengthValidator.atLeast/upTo, RegexValidator.forEmail, Field.required(...). Ноль CustomValidator.forPredicate, ноль ручных проверок длины/contains.
  • Тонкие контракты validate(String) сохранены и делегируют FormsFX-полям (StringField/PasswordField) как единому источнику истины — дублирования правил больше нет.
  • Валидация email ужесточена: contains("@") заменён на RegexValidator.forEmail (раньше проходили @@@@@@, test@com, test@@example.com).
  • Отчество стало необязательным: пустое значение допустимо, пробельное отклоняется (IncorrectFormat), минимальная длина 2 — как у имени и фамилии.
  • Тесты: удалены избыточные Field-половины (дублировали тот же путь через те же validators()), оставлены чёрный ящик validate() как спецификация порогов, сообщений и порядка ошибок; добавлены граничные тесты на короткое имя/фамилию/отчество.

Тесты

  • mvn test: все тесты зелёные (валидация: 15 тестов — required/min/max/format/границы; UI: LoginFormControllerTest без изменений).
  • Поведение LoginFormController не менялось (сигнатура EmailValidator.validate сохранена).

Проверки

  • mvn test: BUILD SUCCESS, 0 failures.
  • mvn spotless:check и mvn checkstyle:check: чистые (проверено и pre-commit хуками при коммите).

…валидаторы FormsFX

Удалён ValidatorHelpers в пользу встроенных StringLengthValidator, RegexValidator.forEmail и Field.required. Тонкие контракты validate(String) сохранены и делегируют FormsFX-полям как единому источнику истины. Избыточные Field-половины тестов удалены, чёрный ящик validate() оставлен как спецификация.

Отчество стало необязательным (пустое допустимо, пробельное отклоняется) с минимальной длиной 2, как у имени и фамилии.
@vladcheck
vladcheck requested review from Deatheh and miyagi18 October 6, 2026 18:02
@vladcheck vladcheck self-assigned this Oct 6, 2026
@vladcheck vladcheck added the enhancement New feature or request label Oct 6, 2026
@vladcheck
vladcheck merged commit 9c5a988 into main Oct 6, 2026
8 checks passed
@vladcheck
vladcheck deleted the vladcheck/no-custom-validation branch October 6, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant