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: '',