@@ -65,4 +65,34 @@ describe('OnChangeGenerator', () => {
6565
6666 expect ( emitSpy ) . not . toHaveBeenCalled ( )
6767 } )
68+
69+ it ( 'should emit a signal with selectedOptions for select elements' , ( ) => {
70+ const emitSpy = jest . spyOn ( emitter , 'emit' )
71+ const target = document . createElement ( 'select' )
72+ const option1 = document . createElement ( 'option' )
73+ option1 . value = 'value1'
74+ option1 . label = 'label1'
75+ option1 . selected = true
76+ const option2 = document . createElement ( 'option' )
77+ option2 . value = 'value2'
78+ option2 . label = 'label2'
79+ target . append ( option1 , option2 )
80+
81+ const event = new Event ( 'change' , { bubbles : true } )
82+ Object . defineProperty ( event , 'target' , { value : target } )
83+
84+ unregister = onChangeGenerator . register ( emitter )
85+ document . dispatchEvent ( event )
86+
87+ expect ( emitSpy ) . toHaveBeenCalledWith (
88+ createInteractionSignal ( {
89+ eventType : 'change' ,
90+ listener : 'onchange' ,
91+ target : expect . any ( Object ) ,
92+ change : {
93+ selectedOptions : [ { value : 'value1' , label : 'label1' } ] ,
94+ } ,
95+ } )
96+ )
97+ } )
6898} )
0 commit comments