Skip to content

Commit b35d456

Browse files
eddyerburghkuitos
authored andcommitted
feat: export createWrapper method to create wrapper from instance (vuejs#868)
1 parent 2a863c3 commit b35d456

File tree

6 files changed

+39
-2
lines changed

6 files changed

+39
-2
lines changed

Diff for: docs/api/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
!!!include(docs/api/renderToString.md)!!!
77
!!!include(docs/api/selectors.md)!!!
88
!!!include(docs/api/createLocalVue.md)!!!
9+
!!!include(docs/api/createWrapper.md)!!!
910
!!!include(docs/api/config.md)!!!

Diff for: docs/api/createWrapper.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## createWrapper()
2+
3+
- **Returns:**
4+
- `{Wrapper}`
5+
6+
- **Usage:**
7+
8+
`createWrapper` creates a `Wrapper` for a mounted Vue instance, or an HTML element.
9+
10+
```js
11+
import { createWrapper } from '@vue/test-utils'
12+
import Foo from './Foo.vue'
13+
14+
const Constructor = Vue.extend(Foo)
15+
const vm = new Constructor().$mount()
16+
const wrapper = createWrapper(vm)
17+
expect(wrapper.vm.foo).toBe(true)
18+
```
19+

Diff for: flow/wrapper.flow.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ declare interface BaseWrapper {
4646

4747
declare type WrapperOptions = {
4848
// eslint-disable-line no-undef
49-
attachedToDocument: boolean,
49+
attachedToDocument?: boolean,
5050
sync?: boolean
5151
};

Diff for: packages/test-utils/src/create-wrapper.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import VueWrapper from './vue-wrapper'
66

77
export default function createWrapper (
88
node: VNode | Component,
9-
options: WrapperOptions
9+
options: WrapperOptions = {}
1010
): VueWrapper | Wrapper {
1111
const componentInstance = node.componentInstance || node.child
1212
if (componentInstance) {

Diff for: packages/test-utils/src/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import createLocalVue from './create-local-vue'
44
import TransitionStub from './components/TransitionStub'
55
import TransitionGroupStub from './components/TransitionGroupStub'
66
import RouterLinkStub from './components/RouterLinkStub'
7+
import createWrapper from './create-wrapper'
78
import Wrapper from './wrapper'
89
import WrapperArray from './wrapper-array'
910
import config from './config'
@@ -19,6 +20,7 @@ function shallow (component, options) {
1920

2021
export default {
2122
createLocalVue,
23+
createWrapper,
2224
config,
2325
mount,
2426
shallow,

Diff for: test/specs/create-wrapper.spec.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import Vue from 'vue'
2+
import { createWrapper, Wrapper, WrapperArray } from '~vue/test-utils'
3+
import Component from '~resources/components/component.vue'
4+
import { describeRunIf } from 'conditional-specs'
5+
6+
describeRunIf(process.env.TEST_ENV !== 'node', 'mount', () => {
7+
it.only('exports createWrapper', () => {
8+
const Constructor = Vue.extend(Component)
9+
const vm = new Constructor().$mount()
10+
const wrapper = createWrapper(vm)
11+
expect(wrapper.is(Component)).to.equal(true)
12+
expect(wrapper).instanceof(Wrapper)
13+
expect(wrapper.findAll('div')).instanceof(WrapperArray)
14+
})
15+
})

0 commit comments

Comments
 (0)