Skip to content

Commit 3d55f46

Browse files
committed
fix(runtime-core): custom-element: ensure event names are hyphenated
1 parent 60cf175 commit 3d55f46

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

packages/runtime-dom/__tests__/customElement.spec.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,10 @@ describe('defineCustomElement', () => {
218218
emit('created')
219219
return () =>
220220
h('div', {
221-
onClick: () => emit('my-click', 1)
221+
onClick: () => {
222+
emit('my-click', 1)
223+
emit('myClick', 1) // validate hypenization
224+
}
222225
})
223226
}
224227
})
@@ -238,10 +241,13 @@ describe('defineCustomElement', () => {
238241
const spy = jest.fn()
239242
e.addEventListener('my-click', spy)
240243
e.shadowRoot!.childNodes[0].dispatchEvent(new CustomEvent('click'))
241-
expect(spy).toHaveBeenCalled()
244+
expect(spy).toHaveBeenCalledTimes(2)
242245
expect(spy.mock.calls[0][0]).toMatchObject({
243246
detail: [1]
244247
})
248+
expect(spy.mock.calls[1][0]).toMatchObject({
249+
detail: [1]
250+
})
245251
})
246252
})
247253

packages/runtime-dom/src/apiCustomElement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ export class VueElement extends BaseClass {
340340
// intercept emit
341341
instance.emit = (event: string, ...args: any[]) => {
342342
this.dispatchEvent(
343-
new CustomEvent(event, {
343+
new CustomEvent(hyphenate(event), {
344344
detail: args
345345
})
346346
)

0 commit comments

Comments
 (0)