@@ -8,7 +8,7 @@ describe("TemperatureControl", () => {
88
99 const checkbox = screen . getByRole ( "checkbox" )
1010 expect ( checkbox ) . not . toBeChecked ( )
11- expect ( screen . queryByRole ( "slider " ) ) . not . toBeInTheDocument ( )
11+ expect ( screen . queryByRole ( "textbox " ) ) . not . toBeInTheDocument ( )
1212 } )
1313
1414 it ( "renders with custom temperature enabled" , ( ) => {
@@ -18,9 +18,9 @@ describe("TemperatureControl", () => {
1818 const checkbox = screen . getByRole ( "checkbox" )
1919 expect ( checkbox ) . toBeChecked ( )
2020
21- const slider = screen . getByRole ( "slider " )
22- expect ( slider ) . toBeInTheDocument ( )
23- expect ( slider ) . toHaveValue ( "0.7" )
21+ const input = screen . getByRole ( "textbox " )
22+ expect ( input ) . toBeInTheDocument ( )
23+ expect ( input ) . toHaveValue ( "0.7" )
2424 } )
2525
2626 it ( "updates when checkbox is toggled" , ( ) => {
@@ -38,12 +38,13 @@ describe("TemperatureControl", () => {
3838 expect ( onChange ) . toHaveBeenCalledWith ( 0.7 )
3939 } )
4040
41- it ( "updates temperature when slider changes " , ( ) => {
41+ it ( "updates temperature when input loses focus " , ( ) => {
4242 const onChange = jest . fn ( )
4343 render ( < TemperatureControl value = { 0.7 } onChange = { onChange } /> )
4444
45- const slider = screen . getByRole ( "slider" )
46- fireEvent . change ( slider , { target : { value : "0.8" } } )
45+ const input = screen . getByRole ( "textbox" )
46+ fireEvent . change ( input , { target : { value : "0.8" } } )
47+ fireEvent . blur ( input )
4748
4849 expect ( onChange ) . toHaveBeenCalledWith ( 0.8 )
4950 } )
@@ -52,8 +53,18 @@ describe("TemperatureControl", () => {
5253 const onChange = jest . fn ( )
5354 render ( < TemperatureControl value = { 1.5 } onChange = { onChange } maxValue = { 2 } /> )
5455
55- const slider = screen . getByRole ( "slider" )
56- expect ( slider ) . toHaveAttribute ( "max" , "2" )
56+ const input = screen . getByRole ( "textbox" )
57+
58+ // Valid value within max
59+ fireEvent . change ( input , { target : { value : "1.8" } } )
60+ fireEvent . blur ( input )
61+ expect ( onChange ) . toHaveBeenCalledWith ( 1.8 )
62+
63+ // Invalid value above max
64+ fireEvent . change ( input , { target : { value : "2.5" } } )
65+ fireEvent . blur ( input )
66+ expect ( input ) . toHaveValue ( "1.5" ) // Should revert to original value
67+ expect ( onChange ) . toHaveBeenCalledTimes ( 1 ) // Should not call onChange for invalid value
5768 } )
5869
5970 it ( "syncs checkbox state when value prop changes" , ( ) => {
0 commit comments