d121a9bc7e
fix #4398
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { createApp, h } from '../src'
|
|
|
|
describe('createApp for dom', () => {
|
|
// #2926
|
|
test('mount to SVG container', () => {
|
|
const root = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
createApp({
|
|
render() {
|
|
return h('g')
|
|
}
|
|
}).mount(root)
|
|
expect(root.children.length).toBe(1)
|
|
expect(root.children[0] instanceof SVGElement).toBe(true)
|
|
})
|
|
|
|
// #4398
|
|
test('should not mutate original root component options object', () => {
|
|
|
|
const originalObj = {
|
|
data() {
|
|
return {
|
|
counter: 0
|
|
}
|
|
}
|
|
}
|
|
|
|
const handler = jest.fn(msg => {
|
|
expect(msg).toMatch(`Component is missing template or render function`)
|
|
})
|
|
|
|
const Root = { ...originalObj}
|
|
|
|
const app = createApp(Root)
|
|
app.config.warnHandler = handler
|
|
app.mount(document.createElement('div'))
|
|
|
|
// ensure mount is based on a copy of Root object rather than Root object itself
|
|
expect(app._component).not.toBe(Root)
|
|
|
|
// ensure no mutation happened to Root object
|
|
expect(originalObj).toMatchObject(Root)
|
|
|
|
})
|
|
})
|