@@ -27,6 +27,7 @@ const NAME_EDIT_TEMPLATE = `
27
27
[cdkEditControlIgnoreSubmitUnlessValid]="ignoreSubmitUnlessValid"
28
28
[cdkEditControlClickOutBehavior]="clickOutBehavior">
29
29
<input [ngModel]="element.name" name="name" required>
30
+ <input [ngModel]="element.weight" name="weight">
30
31
<br>
31
32
<button class="submit" type="submit">Confirm</button>
32
33
<button class="revert" cdkEditRevert>Revert</button>
@@ -131,12 +132,16 @@ abstract class BaseTestComponent {
131
132
return document . querySelector ( '.cdk-overlay-connected-position-bounding-box' ) ;
132
133
}
133
134
134
- getInput ( ) {
135
- return document . querySelector ( 'input' ) as HTMLInputElement | null ;
135
+ getNameInput ( ) {
136
+ return document . querySelector ( 'input[name="name"]' ) as HTMLInputElement | null ;
137
+ }
138
+
139
+ getWeightInput ( ) {
140
+ return document . querySelector ( 'input[name="weight"]' ) as HTMLInputElement | null ;
136
141
}
137
142
138
143
lensIsOpen ( ) {
139
- return ! ! this . getInput ( ) ;
144
+ return ! ! this . getNameInput ( ) ;
140
145
}
141
146
142
147
getSubmitButton ( ) {
@@ -602,7 +607,7 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
602
607
it ( 'shows a lens with the value from the table' , fakeAsync ( ( ) => {
603
608
component . openLens ( ) ;
604
609
605
- expect ( component . getInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
610
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
606
611
clearLeftoverTimers ( ) ;
607
612
} ) ) ;
608
613
@@ -654,8 +659,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
654
659
it ( 'updates the form and submits, closing the lens' , fakeAsync ( ( ) => {
655
660
component . openLens ( ) ;
656
661
657
- component . getInput ( ) ! . value = 'Hydragon' ;
658
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
662
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
663
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
659
664
660
665
component . clickSubmitButton ( ) ;
661
666
fixture . detectChanges ( ) ;
@@ -667,8 +672,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
667
672
it ( 'does not close the lens on submit when form is invalid' , fakeAsync ( ( ) => {
668
673
component . openLens ( ) ;
669
674
670
- component . getInput ( ) ! . value = '' ;
671
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
675
+ component . getNameInput ( ) ! . value = '' ;
676
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
672
677
673
678
component . clickSubmitButton ( ) ;
674
679
@@ -681,8 +686,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
681
686
component . ignoreSubmitUnlessValid = false ;
682
687
component . openLens ( ) ;
683
688
684
- component . getInput ( ) ! . value = '' ;
685
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
689
+ component . getNameInput ( ) ! . value = '' ;
690
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
686
691
687
692
component . clickSubmitButton ( ) ;
688
693
@@ -702,8 +707,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
702
707
it ( 'closes and reopens a lens with modified value persisted' , fakeAsync ( ( ) => {
703
708
component . openLens ( ) ;
704
709
705
- component . getInput ( ) ! . value = 'Hydragon' ;
706
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
710
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
711
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
707
712
708
713
component . clickCloseButton ( ) ;
709
714
fixture . detectChanges ( ) ;
@@ -713,46 +718,59 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
713
718
714
719
component . openLens ( ) ;
715
720
716
- expect ( component . getInput ( ) ! . value ) . toBe ( 'Hydragon' ) ;
721
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydragon' ) ;
717
722
clearLeftoverTimers ( ) ;
718
723
} ) ) ;
719
724
720
725
it ( 'resets the lens to original value' , fakeAsync ( ( ) => {
721
726
component . openLens ( ) ;
722
727
723
- component . getInput ( ) ! . value = 'Hydragon' ;
724
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
728
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
729
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
725
730
726
731
component . clickRevertButton ( ) ;
727
732
728
- expect ( component . getInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
733
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
729
734
clearLeftoverTimers ( ) ;
730
735
} ) ) ;
731
736
737
+ it ( 'should not reset the values when clicking revert without making changes' ,
738
+ fakeAsync ( ( ) => {
739
+ component . openLens ( ) ;
740
+
741
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
742
+ expect ( component . getWeightInput ( ) ! . value ) . toBe ( '1.007' ) ;
743
+
744
+ component . clickRevertButton ( ) ;
745
+
746
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydrogen' ) ;
747
+ expect ( component . getWeightInput ( ) ! . value ) . toBe ( '1.007' ) ;
748
+ } ) ) ;
749
+
732
750
it ( 'resets the lens to previously submitted value' , fakeAsync ( ( ) => {
733
751
component . openLens ( ) ;
734
752
735
- component . getInput ( ) ! . value = 'Hydragon' ;
736
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
753
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
754
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
737
755
738
756
component . clickSubmitButton ( ) ;
739
757
fixture . detectChanges ( ) ;
740
758
741
759
component . openLens ( ) ;
742
760
743
- component . getInput ( ) ! . value = 'Hydragon X' ;
744
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
761
+ component . getNameInput ( ) ! . value = 'Hydragon X' ;
762
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
745
763
746
764
component . clickRevertButton ( ) ;
747
765
748
- expect ( component . getInput ( ) ! . value ) . toBe ( 'Hydragon' ) ;
766
+ expect ( component . getNameInput ( ) ! . value ) . toBe ( 'Hydragon' ) ;
749
767
clearLeftoverTimers ( ) ;
750
768
} ) ) ;
751
769
752
770
it ( 'closes the lens on escape' , fakeAsync ( ( ) => {
753
771
component . openLens ( ) ;
754
772
755
- component . getInput ( ) ! . dispatchEvent (
773
+ component . getNameInput ( ) ! . dispatchEvent (
756
774
new KeyboardEvent ( 'keyup' , { bubbles : true , key : 'Escape' } ) ) ;
757
775
758
776
expect ( component . lensIsOpen ( ) ) . toBe ( false ) ;
@@ -762,7 +780,7 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
762
780
it ( 'does not close the lens on click within lens' , fakeAsync ( ( ) => {
763
781
component . openLens ( ) ;
764
782
765
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'click' , { bubbles : true } ) ) ;
783
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'click' , { bubbles : true } ) ) ;
766
784
767
785
expect ( component . lensIsOpen ( ) ) . toBe ( true ) ;
768
786
clearLeftoverTimers ( ) ;
@@ -771,8 +789,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
771
789
it ( 'closes the lens on outside click' , fakeAsync ( ( ) => {
772
790
component . openLens ( ) ;
773
791
774
- component . getInput ( ) ! . value = 'Hydragon' ;
775
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
792
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
793
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
776
794
document . body . dispatchEvent ( new Event ( 'click' , { bubbles : true } ) ) ;
777
795
fixture . detectChanges ( ) ;
778
796
@@ -786,8 +804,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
786
804
component . clickOutBehavior = 'submit' ;
787
805
component . openLens ( ) ;
788
806
789
- component . getInput ( ) ! . value = 'Hydragon' ;
790
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
807
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
808
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
791
809
document . body . dispatchEvent ( new Event ( 'click' , { bubbles : true } ) ) ;
792
810
fixture . detectChanges ( ) ;
793
811
@@ -801,8 +819,8 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
801
819
component . clickOutBehavior = 'noop' ;
802
820
component . openLens ( ) ;
803
821
804
- component . getInput ( ) ! . value = 'Hydragon' ;
805
- component . getInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
822
+ component . getNameInput ( ) ! . value = 'Hydragon' ;
823
+ component . getNameInput ( ) ! . dispatchEvent ( new Event ( 'input' ) ) ;
806
824
document . body . dispatchEvent ( new Event ( 'click' , { bubbles : true } ) ) ;
807
825
fixture . detectChanges ( ) ;
808
826
@@ -814,7 +832,7 @@ cdkPopoverEditTabOut`, fakeAsync(() => {
814
832
it ( 'sets focus on the first input in the lens' , fakeAsync ( ( ) => {
815
833
component . openLens ( ) ;
816
834
817
- expect ( document . activeElement ) . toBe ( component . getInput ( ) ) ;
835
+ expect ( document . activeElement ) . toBe ( component . getNameInput ( ) ) ;
818
836
clearLeftoverTimers ( ) ;
819
837
} ) ) ;
820
838
0 commit comments