@@ -503,22 +503,20 @@ void main() {
503503 });
504504 group ('reset -' , () {
505505 testWidgets (
506- 'Should avoid reset recursion when reset is called after dirty state ' ,
506+ 'Should avoid reset recursion when value returns to initial in onChanged ' ,
507507 (tester) async {
508508 const textFieldName = 'text' ;
509509 final textFieldKey = GlobalKey <FormBuilderFieldState >();
510510 var onChangedCalls = 0 ;
511- var onChangedCallsBeforeReset = 0 ;
512- bool ? isDirtyInResetOnChanged;
513511 final testWidget = FormBuilderTextField (
514512 name: textFieldName,
515513 key: textFieldKey,
516514 initialValue: 'hi' ,
517515 onChanged: (value) {
518516 onChangedCalls++ ;
519517 final state = textFieldKey.currentState;
520- if (value == state? .initialValue) {
521- isDirtyInResetOnChanged = state? .isDirty ;
518+ if (value == state? .initialValue && state ? .isDirty == true ) {
519+ state? .reset () ;
522520 }
523521 },
524522 );
@@ -527,18 +525,12 @@ void main() {
527525 final widgetFinder = find.byWidget (testWidget);
528526 await tester.enterText (widgetFinder, 'test' );
529527 await tester.pumpAndSettle ();
530-
531- expect (textFieldKey.currentState? .isDirty, true );
532- onChangedCallsBeforeReset = onChangedCalls;
533-
534- textFieldKey.currentState? .reset ();
528+ await tester.enterText (widgetFinder, 'hi' );
535529 await tester.pumpAndSettle ();
536530
537531 expect (tester.takeException (), isNull);
538- expect (textFieldKey.currentState? .value, equals ('hi' ));
539532 expect (textFieldKey.currentState? .isDirty, false );
540- expect (onChangedCalls, equals (onChangedCallsBeforeReset + 1 ));
541- expect (isDirtyInResetOnChanged, isFalse);
533+ expect (onChangedCalls, equals (2 ));
542534 },
543535 );
544536 testWidgets ('Should reset to null when call reset' , (tester) async {
0 commit comments