@@ -22,17 +22,24 @@ function testInputValue(container: HTMLElement, inputId: string, expectedText: s
2222 expect ( input . value ) . toEqual ( expectedText ) ;
2323}
2424
25+ function testDatePickerValue ( container : HTMLElement , expectedValue : string ) {
26+ const datePicker = getAndCheckRenderedElement < HTMLInputElement > ( container , 'date-editor-picker' ) ;
27+ expect ( datePicker . value ) . toEqual ( expectedValue ) ;
28+ }
29+
2530async function testTypingInput (
2631 {
2732 userTyped,
2833 expectedLeftText,
2934 expectedRightText,
3035 expectedReturnedDate,
36+ expectedReturnedDateValidity = 'true' ,
3137 } : {
3238 userTyped : string ;
3339 expectedLeftText : string ;
3440 expectedRightText : string ;
3541 expectedReturnedDate : string ;
42+ expectedReturnedDateValidity ?: 'true' | 'false' ;
3643 } ,
3744 { forwardOnly } : { forwardOnly : boolean } = { forwardOnly : true } ,
3845) {
@@ -44,6 +51,14 @@ async function testTypingInput(
4451 testInputValue ( container , 'due' , expectedLeftText ) ;
4552 testInputValue ( container , 'parsedDateFromDateEditor' , expectedRightText ) ;
4653 testInputValue ( container , 'dueDateFromDateEditor' , expectedReturnedDate ) ;
54+ testInputValue ( container , 'parsedDateValidFromDateEditor' , expectedReturnedDateValidity ) ;
55+
56+ if ( expectedReturnedDateValidity === 'true' ) {
57+ testDatePickerValue ( container , expectedRightText ) ;
58+ } else {
59+ const datePicker = container . ownerDocument . getElementById ( 'date-editor-picker' ) as HTMLInputElement ;
60+ expect ( datePicker ) . toBeNull ( ) ;
61+ }
4762}
4863
4964beforeEach ( ( ) => {
@@ -62,6 +77,8 @@ describe('date editor wrapper tests', () => {
6277 testInputValue ( container , 'due' , '' ) ;
6378 testInputValue ( container , 'parsedDateFromDateEditor' , '<i>no due date</i>' ) ;
6479 testInputValue ( container , 'dueDateFromDateEditor' , '' ) ;
80+
81+ testDatePickerValue ( container , '' ) ;
6582 } ) ;
6683
6784 it ( 'should replace an empty date field with typed date value' , async ( ) => {
@@ -88,6 +105,7 @@ describe('date editor wrapper tests', () => {
88105 expectedLeftText : 'blah' ,
89106 expectedRightText : '<i>invalid due date</i>' ,
90107 expectedReturnedDate : 'blah' ,
108+ expectedReturnedDateValidity : 'false' ,
91109 } ) ;
92110 } ) ;
93111
@@ -114,4 +132,18 @@ describe('date editor wrapper tests', () => {
114132 { forwardOnly : false } ,
115133 ) ;
116134 } ) ;
135+
136+ it ( 'should pick a date' , async ( ) => {
137+ const container = renderDateEditorWrapper ( { forwardOnly : false } ) ;
138+ const datePicker = getAndCheckRenderedElement < HTMLInputElement > ( container , 'date-editor-picker' ) ;
139+
140+ await fireEvent . input ( datePicker , { target : { value : '2024-11-03' } } ) ;
141+
142+ expect ( datePicker . value ) . toEqual ( '2024-11-03' ) ;
143+
144+ testInputValue ( container , 'due' , '2024-11-03' ) ;
145+ testInputValue ( container , 'parsedDateFromDateEditor' , '2024-11-03' ) ;
146+ testInputValue ( container , 'dueDateFromDateEditor' , '2024-11-03' ) ;
147+ testInputValue ( container , 'parsedDateValidFromDateEditor' , 'true' ) ;
148+ } ) ;
117149} ) ;
0 commit comments