@@ -111,6 +111,37 @@ describe('NgbInputDatepicker', () => {
111
111
expect ( input . disabled ) . toBeFalsy ( ) ;
112
112
expect ( buttonInDatePicker . disabled ) . toBeFalsy ( ) ;
113
113
} ) ) ;
114
+
115
+ it ( 'should propagate touched state on (blur)' , fakeAsync ( ( ) => {
116
+ const fixture = createTestCmpt ( `<input ngbDatepicker [(ngModel)]="date">` ) ;
117
+ const inputDebugEl = fixture . debugElement . query ( By . css ( 'input' ) ) ;
118
+
119
+ expect ( inputDebugEl . classes [ 'ng-touched' ] ) . toBeFalsy ( ) ;
120
+
121
+ inputDebugEl . triggerEventHandler ( 'blur' , { } ) ;
122
+ tick ( ) ;
123
+ fixture . detectChanges ( ) ;
124
+
125
+ expect ( inputDebugEl . classes [ 'ng-touched' ] ) . toBeTruthy ( ) ;
126
+ } ) ) ;
127
+
128
+ it ( 'should propagate touched state when setting a date' , fakeAsync ( ( ) => {
129
+ const fixture = createTestCmpt ( `
130
+ <input ngbDatepicker [(ngModel)]="date" #d="ngbDatepicker">
131
+ <button (click)="open(d)">Open</button>` ) ;
132
+
133
+ const buttonDebugEl = fixture . debugElement . query ( By . css ( 'button' ) ) ;
134
+ const inputDebugEl = fixture . debugElement . query ( By . css ( 'input' ) ) ;
135
+
136
+ expect ( inputDebugEl . classes [ 'ng-touched' ] ) . toBeFalsy ( ) ;
137
+
138
+ buttonDebugEl . triggerEventHandler ( 'click' , { } ) ; // open
139
+ inputDebugEl . triggerEventHandler ( 'change' , { target : { value : '2016-09-10' } } ) ;
140
+ tick ( ) ;
141
+ fixture . detectChanges ( ) ;
142
+
143
+ expect ( inputDebugEl . classes [ 'ng-touched' ] ) . toBeTruthy ( ) ;
144
+ } ) ) ;
114
145
} ) ;
115
146
116
147
describe ( 'options' , ( ) => {
0 commit comments