diff --git a/src/lib/stub-components.js b/src/lib/stub-components.js index 315e2a96b..69e897090 100644 --- a/src/lib/stub-components.js +++ b/src/lib/stub-components.js @@ -120,6 +120,9 @@ export function createComponentStubsForAll (component: Component): Object { Object.keys(component.components).forEach(c => { // Remove cached constructor delete component.components[c]._Ctor + if (!component.components[c].name) { + component.components[c].name = c + } components[c] = createBlankStub(component.components[c]) // ignoreElements does not exist in Vue 2.0.x diff --git a/test/unit/specs/mount/Wrapper/contains.spec.js b/test/unit/specs/mount/Wrapper/contains.spec.js index 50c7b8886..03ca5a895 100644 --- a/test/unit/specs/mount/Wrapper/contains.spec.js +++ b/test/unit/specs/mount/Wrapper/contains.spec.js @@ -5,6 +5,7 @@ import Component from '~resources/components/component.vue' import FunctionalComponent from '~resources/components/functional-component.vue' import ComponentAsAClass from '~resources/components/component-as-a-class.vue' import { functionalSFCsSupported } from '~resources/test-utils' +import ComponentWithoutName from '~resources/components/component-without-name.vue' describe('contains', () => { it('returns true if wrapper contains element', () => { @@ -78,6 +79,21 @@ describe('contains', () => { expect(wrapper.contains('doesntexist')).to.equal(false) }) + it('returns true if wrapper root Component matches selector', () => { + const TestComponent = { + template: ` +
+ +
+ `, + components: { + ComponentWithoutName + } + } + const wrapper = mount(TestComponent) + expect(wrapper.contains(ComponentWithoutName)).to.equal(true) + }) + it('returns true if wrapper root Component matches selector', () => { const wrapper = mount(Component) expect(wrapper.contains(Component)).to.equal(true) diff --git a/test/unit/specs/shallow.spec.js b/test/unit/specs/shallow.spec.js index c14c9a17e..92e4250a9 100644 --- a/test/unit/specs/shallow.spec.js +++ b/test/unit/specs/shallow.spec.js @@ -5,6 +5,7 @@ import Component from '~resources/components/component.vue' import ComponentWithChild from '~resources/components/component-with-child.vue' import ComponentWithNestedChildren from '~resources/components/component-with-nested-children.vue' import ComponentWithLifecycleHooks from '~resources/components/component-with-lifecycle-hooks.vue' +import ComponentWithoutName from '~resources/components/component-without-name.vue' describe('shallow', () => { let info @@ -73,6 +74,23 @@ describe('shallow', () => { expect(info.called).to.equal(false) }) + it('works correctly with find, contains, findAll, and is', () => { + const TestComponent = { + template: ` +
+ +
+ `, + components: { + ComponentWithoutName + } + } + const wrapper = shallow(TestComponent) + expect(wrapper.contains(ComponentWithoutName)).to.equal(true) + expect(wrapper.find(ComponentWithoutName).is(ComponentWithoutName)).to.equal(true) + expect(wrapper.findAll(ComponentWithoutName).length).to.equal(1) + }) + it('throws an error when the component fails to mount', () => { expect(() => shallow({ template: '
',