@@ -201,6 +201,9 @@ describe('hooks', () => {
201201 setMergedValue ( v => v + 1 ) ;
202202 setMergedValue ( v => v + 1 ) ;
203203 } }
204+ onMouseEnter = { ( ) => {
205+ setMergedValue ( 1 ) ;
206+ } }
204207 >
205208 { mergedValue }
206209 </ span >
@@ -217,6 +220,8 @@ describe('hooks', () => {
217220 expect ( onChange ) . not . toHaveBeenCalled ( ) ;
218221
219222 // Click update
223+ rerender ( < Demo value = { undefined } /> ) ;
224+ fireEvent . mouseEnter ( container . querySelector ( 'span' ) ) ;
220225 fireEvent . click ( container . querySelector ( 'span' ) ) ;
221226 expect ( container . textContent ) . toEqual ( '3' ) ;
222227 expect ( onChange ) . toHaveBeenCalledWith ( 3 , 1 ) ;
@@ -251,6 +256,31 @@ describe('hooks', () => {
251256 fireEvent . mouseEnter ( container . querySelector ( 'span' ) ) ;
252257 expect ( onChange ) . toHaveBeenCalledWith ( 2 , 1 ) ;
253258 } ) ;
259+
260+ it ( 'should alway use option value' , ( ) => {
261+ const onChange = jest . fn ( ) ;
262+
263+ const Test = ( { value } ) => {
264+ const [ mergedValue , setMergedValue ] = useMergedState ( undefined , {
265+ value,
266+ onChange,
267+ } ) ;
268+ return (
269+ < span
270+ onClick = { ( ) => {
271+ setMergedValue ( 12 ) ;
272+ } }
273+ >
274+ { mergedValue }
275+ </ span >
276+ ) ;
277+ } ;
278+
279+ const { container } = render ( < Test value = { 1 } /> ) ;
280+ fireEvent . click ( container . querySelector ( 'span' ) ) ;
281+
282+ expect ( container . textContent ) . toBe ( '1' ) ;
283+ } ) ;
254284 } ) ;
255285
256286 describe ( 'useLayoutEffect' , ( ) => {
0 commit comments