1- import { render , act , waitFor , fireEvent } from "@testing-library/react" ;
1+ import { render , waitFor , fireEvent } from "@testing-library/react" ;
2+ import { act } from "react" ;
23import { userEvent } from "@testing-library/user-event" ;
34import { enUS , enGB } from "date-fns/locale" ;
45import React , { useState } from "react" ;
@@ -5050,7 +5051,7 @@ describe("DatePicker", () => {
50505051
50515052 jest . advanceTimersByTime ( 1 ) ;
50525053
5053- expect ( setFocusSpy ) . toHaveBeenCalledTimes ( 2 ) ;
5054+ expect ( setFocusSpy ) . toHaveBeenCalledTimes ( 1 ) ;
50545055
50555056 setFocusSpy . mockRestore ( ) ;
50565057 jest . useRealTimers ( ) ;
@@ -5077,37 +5078,51 @@ describe("DatePicker", () => {
50775078
50785079 it ( "reports input errors when escaping with invalid preSelection" , ( ) => {
50795080 const onInputError = jest . fn ( ) ;
5080- const { container , instance } = renderDatePickerWithRef ( {
5081+ const { instance } = renderDatePickerWithRef ( {
50815082 selected : null ,
50825083 onChange : ( ) => { } ,
50835084 onInputError,
50845085 } ) ;
50855086
50865087 act ( ( ) => {
5087- instance ?. setState ( { preSelection : "invalid-date" as unknown as Date } ) ;
5088+ instance ?. setState ( {
5089+ preSelection : "invalid-date" as unknown as Date ,
5090+ open : true ,
5091+ } ) ;
50885092 } ) ;
50895093
5090- const input = safeQuerySelector < HTMLInputElement > ( container , "input" ) ;
5091- fireEvent . keyDown ( input , { key : "Escape" } ) ;
5094+ act ( ( ) => {
5095+ instance ?. onInputKeyDown ( {
5096+ key : "Escape" ,
5097+ preventDefault : jest . fn ( ) ,
5098+ target : document . createElement ( "input" ) ,
5099+ } as unknown as React . KeyboardEvent < HTMLElement > ) ;
5100+ } ) ;
50925101
50935102 expect ( onInputError ) . toHaveBeenCalled ( ) ;
50945103 } ) ;
50955104
50965105 it ( "reports input errors when input key down completes with invalid preSelection" , ( ) => {
50975106 const onInputError = jest . fn ( ) ;
5098- const { container , instance } = renderDatePickerWithRef ( {
5107+ const { instance } = renderDatePickerWithRef ( {
50995108 selected : null ,
51005109 onChange : ( ) => { } ,
51015110 onInputError,
51025111 } ) ;
51035112
51045113 act ( ( ) => {
5105- instance ?. setState ( { preSelection : "invalid-date" as unknown as Date } ) ;
5114+ instance ?. setState ( {
5115+ preSelection : "invalid-date" as unknown as Date ,
5116+ open : true ,
5117+ } ) ;
51065118 } ) ;
51075119
5108- const input = safeQuerySelector < HTMLInputElement > ( container , "input" ) ;
51095120 act ( ( ) => {
5110- fireEvent . keyDown ( input , { key : "Tab" } ) ;
5121+ instance ?. onInputKeyDown ( {
5122+ key : "Tab" ,
5123+ preventDefault : jest . fn ( ) ,
5124+ target : document . createElement ( "input" ) ,
5125+ } as unknown as React . KeyboardEvent < HTMLElement > ) ;
51115126 } ) ;
51125127
51135128 expect ( onInputError ) . toHaveBeenCalled ( ) ;
0 commit comments