Closed meganetaaan closed 5 years ago
同期・非同期が混在しており同期バリデーションでエラーがあった場合、 誤ってvalidatingPropertiesに分類してしまい、同期バリデーションのエラー内容が含まれていなかった。 これを修正し、同期バリデーションでエラーがあった場合は (結果待ちの非同期バリデーションエラーがあった場合でも)ただちにinvalidPropertiesに分類するようにした。
また、この修正に伴い発生した下記のバグも修正した。
FormController側では「非同期結果待ちかどうか」をvalidatingPropertiesで見ていたが、
上記修正により同期エラーがあった場合invalidPropertiesに分類された状態でValidationResultが返ってくるようになったため
同期エラーがあったプロパティについて後からさらに非同期バリデーションエラーが発生した場合にその非同期バリデーションエラーが表示されなかった。
そこで、ValidationResultに内部的に_asyncWaitingPropertiesを用意し、これを見て判定するようにした。
事象
FormControllerによる入力チェック機能において、
場合、同期のチェックに失敗しているにもかかわらず非同期のエラーメッセージのみが表示されてしまう。
環境
事象が再現するコード
スクリーンショット
size(同期), customFunc(非同期)両方のルールに違反しているので両方のエラーメッセージ(「userNameは3以上10以下の長さでなければいけません。」「userNameは条件を満たしません」)が出てほしいが、customFunc(非同期)のみ出ている