feat(sfc): allow sfcs to recursively self-reference in template via name inferred from filename

e.g. A file named `FooBar.vue` can refer to itself as `<FooBar/>`. This gets rid of the need for the `name` option.
This commit is contained in:
Evan You
2020-11-30 12:30:35 -05:00
parent 29d256c39d
commit 67d1aac6ae
8 changed files with 54 additions and 24 deletions

View File

@@ -70,6 +70,14 @@ describe('compiler: element transform', () => {
expect(root.components).toContain(`Foo`)
})
test('resolve implcitly self-referencing component', () => {
const { root } = parseWithElementTransform(`<Example/>`, {
filename: `/foo/bar/Example.vue?vue&type=template`
})
expect(root.helpers).toContain(RESOLVE_COMPONENT)
expect(root.components).toContain(`_self`)
})
test('static props', () => {
const { node } = parseWithElementTransform(`<div id="foo" class="bar" />`)
expect(node).toMatchObject({