Skip to content

Commit d68380f

Browse files
committed
wip
1 parent ada93ac commit d68380f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

packages/signals/signals/src/core/signal-generators/dom-gen/__tests__/change-gen.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)