createApp,
computed
} from '@vue/runtime-test'
+import { render as domRender } from 'vue'
describe('api: options', () => {
test('data', async () => {
expect(renderToString(h(Comp))).toBe('base,base')
})
+ test('extends template', () => {
+ const Comp = {
+ extends: {
+ template: `<h1>Foo</h1>`
+ }
+ }
+
+ const root = document.createElement('div') as any
+ domRender(h(Comp), root)
+ expect(root.innerHTML).toBe(`<h1>Foo</h1>`)
+ })
+
+
test('options defined in component have higher priority', async () => {
const Mixin = {
msg1: 'base'
applyOptions,
ComponentOptions,
ComputedOptions,
- MethodOptions
+ MethodOptions,
+ resolveMergedOptions
} from './componentOptions'
import {
EmitsOptions,
(__COMPAT__ &&
instance.vnode.props &&
instance.vnode.props['inline-template']) ||
- Component.template
+ Component.template ||
+ resolveMergedOptions(instance).template
if (template) {
if (__DEV__) {
startMeasure(instance, `compile`)