2022-08-30 14:07:35 +08:00
|
|
|
import { createApp } from '../src'
|
|
|
|
|
|
|
|
// https://github.com/vuejs/docs/pull/1890
|
|
|
|
// https://github.com/vuejs/core/issues/5401
|
|
|
|
// https://github.com/vuejs/docs/issues/1708
|
|
|
|
test('custom element event casing', () => {
|
|
|
|
customElements.define(
|
|
|
|
'custom-event-casing',
|
|
|
|
class Foo extends HTMLElement {
|
|
|
|
connectedCallback() {
|
|
|
|
this.dispatchEvent(new Event('camelCase'))
|
|
|
|
this.dispatchEvent(new Event('CAPScase'))
|
|
|
|
this.dispatchEvent(new Event('PascalCase'))
|
|
|
|
}
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
|
|
|
const container = document.createElement('div')
|
|
|
|
document.body.appendChild(container)
|
|
|
|
|
2023-01-26 15:25:55 +08:00
|
|
|
const handler = vi.fn()
|
|
|
|
const handler2 = vi.fn()
|
2022-08-30 14:07:35 +08:00
|
|
|
createApp({
|
|
|
|
template: `
|
|
|
|
<custom-event-casing
|
|
|
|
@camelCase="handler"
|
|
|
|
@CAPScase="handler"
|
|
|
|
@PascalCase="handler"
|
|
|
|
v-on="{
|
|
|
|
camelCase: handler2,
|
|
|
|
CAPScase: handler2,
|
|
|
|
PascalCase: handler2
|
|
|
|
}" />`,
|
|
|
|
methods: {
|
|
|
|
handler,
|
|
|
|
handler2,
|
|
|
|
},
|
|
|
|
}).mount(container)
|
|
|
|
|
|
|
|
expect(handler).toHaveBeenCalledTimes(3)
|
|
|
|
expect(handler2).toHaveBeenCalledTimes(3)
|
|
|
|
})
|