diff --git a/docs/en/README.md b/docs/en/README.md index 8e5665dea..7cf3985b6 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -51,7 +51,6 @@ Vue Test Utils is the official unit testing utility library for Vue.js. * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -66,7 +65,6 @@ Vue Test Utils is the official unit testing utility library for Vue.js. * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [isVisible](api/wrapper-array/isVisible.md) * [components](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index f3c276469..a0348be83 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -47,7 +47,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -62,7 +61,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [isVisible](api/wrapper-array/isVisible.md) * [components](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/en/api/options.md b/docs/en/api/options.md index 595778abe..1b11b6d7c 100644 --- a/docs/en/api/options.md +++ b/docs/en/api/options.md @@ -13,6 +13,7 @@ Options for `mount` and `shallow`. The options object can contain both Vue Test - [`attrs`](#attrs) - [`listeners`](#listeners) - [`provide`](#provide) +- [`sync`](#sync) ### `context` @@ -166,6 +167,13 @@ Set the component instance's `$listeners` object. Pass properties for components to use in injection. See [provide/inject](https://vuejs.org/v2/api/#provide-inject). +### `sync` + +- type: `boolean` +- default: `true` + +Sets all watchers to run synchronously. + ## Other options When the options for `mount` and `shallow` contain the options other than the mounting options, the component options are overwritten with those using [extends](https://vuejs.org/v2/api/#extends). diff --git a/docs/en/api/wrapper-array/update.md b/docs/en/api/wrapper-array/update.md deleted file mode 100644 index b9a1f9080..000000000 --- a/docs/en/api/wrapper-array/update.md +++ /dev/null @@ -1,19 +0,0 @@ -# `update()` - -Force root Vue component of each `Wrapper` in `WrapperArray` to re-render. - -If called on a Vue component wrapper array, it will force each Vue component to re-render. - -- **Example:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/en/api/wrapper/update.md b/docs/en/api/wrapper/update.md deleted file mode 100644 index 9d40fd541..000000000 --- a/docs/en/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# `update()` - -Force root Vue component to re-render. - -If called on a `Wrapper` containing a `vm`, it will force the `Wrapper` `vm` to re-render. - -- **Example:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/docs/fr/README.md b/docs/fr/README.md index 82d017073..619df69b1 100644 --- a/docs/fr/README.md +++ b/docs/fr/README.md @@ -48,7 +48,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -66,7 +65,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [components](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/fr/SUMMARY.md b/docs/fr/SUMMARY.md index 9ebfa4cef..afba0ee2e 100644 --- a/docs/fr/SUMMARY.md +++ b/docs/fr/SUMMARY.md @@ -43,7 +43,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) diff --git a/docs/fr/api/README.md b/docs/fr/api/README.md index c59df9fc0..6e121b1bc 100644 --- a/docs/fr/api/README.md +++ b/docs/fr/api/README.md @@ -34,7 +34,6 @@ * [setProps (EN)](./wrapper/setProps.md) * [text (EN)](./wrapper/text.md) * [trigger (EN)](./wrapper/trigger.md) - * [update (EN)](./wrapper/update.md) * [WrapperArray (EN)](./wrapper-array/README.md) * [at (EN)](./wrapper-array/at.md) * [contains (EN)](./wrapper-array/contains.md) @@ -52,7 +51,6 @@ * [setMethods (EN)](./wrapper-array/setMethods.md) * [setProps (EN)](./wrapper-array/setProps.md) * [trigger (EN)](./wrapper-array/trigger.md) - * [update (EN)](./wrapper-array/update.md) * [components (EN)](./components/README.md) * [TransitionStub (EN)](./components/TransitionStub.md) * [TransitionGroupStub (EN)](./components/TransitionGroupStub.md) diff --git a/docs/fr/api/wrapper-array/update.md b/docs/fr/api/wrapper-array/update.md deleted file mode 100644 index 84dc67485..000000000 --- a/docs/fr/api/wrapper-array/update.md +++ /dev/null @@ -1,19 +0,0 @@ -# update() - -

⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou participer à la traduction de celle-ci dès maintenant !

Force root Vue component of each `Wrapper` in `WrapperArray` to re-render.

- -If called on a Vue component wrapper array, it will force each Vue component to re-render. - -- **Example:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/fr/api/wrapper/update.md b/docs/fr/api/wrapper/update.md deleted file mode 100644 index f13564696..000000000 --- a/docs/fr/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# update() - -

⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou participer à la traduction de celle-ci dès maintenant !

Force root Vue component to re-render.

- -If called on a `Wrapper` containing a `vm`, it will force the `Wrapper` `vm` to re-render. - -- **Example:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/docs/ja/README.md b/docs/ja/README.md index 1a8cf9904..39be309b7 100644 --- a/docs/ja/README.md +++ b/docs/ja/README.md @@ -49,7 +49,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [visible](api/wrapper/visible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -64,7 +63,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [visible](api/wrapper-array/visible.md) * [コンポーネント](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/ja/SUMMARY.md b/docs/ja/SUMMARY.md index 304b240c5..76bf25ffd 100644 --- a/docs/ja/SUMMARY.md +++ b/docs/ja/SUMMARY.md @@ -47,7 +47,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -62,7 +61,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [isVisible](api/wrapper-array/isVisible.md) * [コンポーネント](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/ja/api/wrapper-array/update.md b/docs/ja/api/wrapper-array/update.md deleted file mode 100644 index 50e4676dd..000000000 --- a/docs/ja/api/wrapper-array/update.md +++ /dev/null @@ -1,19 +0,0 @@ -# update() - -`WrapperArray` の各 `Wrapper` のルート Vue コンポーネントを強制的に再描画します。 - -ラップされた Vue コンポーネント配列において呼び出された場合、各 Vue コンポーネントは強制的に再描画します。 - -- **例:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/ja/api/wrapper/update.md b/docs/ja/api/wrapper/update.md deleted file mode 100644 index af78ff9bd..000000000 --- a/docs/ja/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# update() - -Vue コンポーネントを強制的に再描画します。 - -`vm` を含む `Wrapper` で呼び出された場合、`Wrapper` `vm` を強制的に再描画します。 - -- **例:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/docs/kr/SUMMARY.md b/docs/kr/SUMMARY.md index cb306be56..3a2c5d22c 100644 --- a/docs/kr/SUMMARY.md +++ b/docs/kr/SUMMARY.md @@ -41,7 +41,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [destroy](api/wrapper/destroy.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -58,7 +57,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [destroy](api/wrapper-array/destroy.md) * [components](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/kr/api/README.md b/docs/kr/api/README.md index b7d0ed8bd..85ec1e187 100644 --- a/docs/kr/api/README.md +++ b/docs/kr/api/README.md @@ -26,7 +26,6 @@ * [isEmpty](./wrapper/isEmpty.md) * [isVueInstance](./wrapper/isVueInstance.md) * [name](./wrapper/name.md) - * [update](./wrapper/update.md) * [setData](./wrapper/setData.md) * [setProps](./wrapper/setProps.md) * [text](./wrapper/text.md) @@ -41,7 +40,6 @@ * [is](./wrapper-array/is.md) * [isEmpty](./wrapper-array/isEmpty.md) * [isVueInstance](./wrapper-array/isVueInstance.md) - * [update](./wrapper-array/update.md) * [setData](./wrapper-array/setData.md) * [setProps](./wrapper-array/setProps.md) * [trigger](./wrapper-array/trigger.md) diff --git a/docs/kr/api/wrapper-array/update.md b/docs/kr/api/wrapper-array/update.md deleted file mode 100644 index 31a179052..000000000 --- a/docs/kr/api/wrapper-array/update.md +++ /dev/null @@ -1,20 +0,0 @@ -# update() - -`WrapperArray`의 모든 `Wrapper`의 루트 Vue 컴포넌트를 다시 렌더링합니다. - -Vue 컴포넌트 래퍼 배열에서 호출되면 각 Vue 컴포넌트가 강제로 다시 렌더링됩니다. - - -- **예제:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/kr/api/wrapper/update.md b/docs/kr/api/wrapper/update.md deleted file mode 100644 index 6d10b218c..000000000 --- a/docs/kr/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# update() - -강제로 루트 Vue 컴포넌트를 재 렌더링합니다. - -`vm`을 포함하는 `Wrapper`에서 호출되면, `Wrapper` `vm`을 강제로 다시 렌더링합니다. - -- **예제:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/docs/pt-br/README.md b/docs/pt-br/README.md index 5ac4dbfd3..7ce468d5c 100644 --- a/docs/pt-br/README.md +++ b/docs/pt-br/README.md @@ -48,7 +48,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -66,7 +65,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [Componentes](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/pt-br/SUMMARY.md b/docs/pt-br/SUMMARY.md index a639d7712..df230a2a1 100644 --- a/docs/pt-br/SUMMARY.md +++ b/docs/pt-br/SUMMARY.md @@ -43,7 +43,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -61,7 +60,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [Componentes](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/pt-br/api/README.md b/docs/pt-br/api/README.md index b40bb4e1d..f3ded7f16 100644 --- a/docs/pt-br/api/README.md +++ b/docs/pt-br/api/README.md @@ -34,7 +34,6 @@ * [setProps](./wrapper/setProps.md) * [text](./wrapper/text.md) * [trigger](./wrapper/trigger.md) - * [update](./wrapper/update.md) * [WrapperArray](./wrapper-array/README.md) * [at](./wrapper-array/at.md) * [contains](./wrapper-array/contains.md) @@ -52,7 +51,6 @@ * [setMethods](./wrapper-array/setMethods.md) * [setProps](./wrapper-array/setProps.md) * [trigger](./wrapper-array/trigger.md) - * [update](./wrapper-array/update.md) * [components](./components/README.md) * [TransitionStub](./components/TransitionStub.md) * [TransitionGroupStub](./components/TransitionGroupStub.md) diff --git a/docs/pt-br/api/wrapper-array/update.md b/docs/pt-br/api/wrapper-array/update.md deleted file mode 100644 index 763630311..000000000 --- a/docs/pt-br/api/wrapper-array/update.md +++ /dev/null @@ -1,21 +0,0 @@ -# update() - -Força a atualização e redesenho do componente Vue de cada wrapper do Array. - -Se for chamado a partir de um componente Vue, força a atualização de cada componente do Array. - -- **Exemplo:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') - -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'novo valor' -divArray.update() - -expect(divArray.at(0).vm.bar).toBe('novo valor') -``` diff --git a/docs/pt-br/api/wrapper/update.md b/docs/pt-br/api/wrapper/update.md deleted file mode 100644 index a4ac4fe0d..000000000 --- a/docs/pt-br/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# update() - -Força o componente Vue a ser redesenhado. - -Se você chamar esse método em um wrapper que contém `vm`, ele forçará o `vm` do wrapper a se redesenhar. - -- **Exemplo:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'novo valor' -wrapper.update() -expect(wrapper.vm.bar).toBe('novo valor') -``` diff --git a/docs/ru/README.md b/docs/ru/README.md index ced2d7c2a..fce5061f3 100644 --- a/docs/ru/README.md +++ b/docs/ru/README.md @@ -51,7 +51,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -66,7 +65,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [Компоненты](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index d4b1426da..68ea17f97 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -46,7 +46,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -61,7 +60,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [Компоненты](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/ru/api/README.md b/docs/ru/api/README.md index f304f9777..635879bb2 100644 --- a/docs/ru/api/README.md +++ b/docs/ru/api/README.md @@ -36,7 +36,6 @@ * [setProps](./wrapper/setProps.md) * [text](./wrapper/text.md) * [trigger](./wrapper/trigger.md) - * [update](./wrapper/update.md) * [WrapperArray](./wrapper-array/README.md) * [at](./wrapper-array/at.md) * [contains](./wrapper-array/contains.md) @@ -51,7 +50,6 @@ * [setMethods](./wrapper-array/setMethods.md) * [setProps](./wrapper-array/setProps.md) * [trigger](./wrapper-array/trigger.md) - * [update](./wrapper-array/update.md) * [Компоненты](./components/README.md) * [TransitionStub](./components/TransitionStub.md) * [TransitionGroupStub](./components/TransitionGroupStub.md) diff --git a/docs/ru/api/wrapper-array/update.md b/docs/ru/api/wrapper-array/update.md deleted file mode 100644 index e56baaae4..000000000 --- a/docs/ru/api/wrapper-array/update.md +++ /dev/null @@ -1,19 +0,0 @@ -# update() - -Вызывает принудительный перерендеринг корневого компонента Vue у каждого `Wrapper` в `WrapperArray`. - -Если вызывается на массиве wrapper, содержащем компоненты Vue, то будет вызван принудительный перерендеринг каждого компонента Vue. - -- **Пример:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/ru/api/wrapper/update.md b/docs/ru/api/wrapper/update.md deleted file mode 100644 index 074b731f4..000000000 --- a/docs/ru/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# update() - -Принудительный перерендеринг корневого компонента Vue. - -Если вызывается на `Wrapper` содержащем `vm`, то будет вызван принудительный перерендеринг `Wrapper` `vm`. - -- **Пример:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md index 825dc2f28..c57e362a2 100644 --- a/docs/zh-cn/README.md +++ b/docs/zh-cn/README.md @@ -51,7 +51,6 @@ Vue Test Utils 是 Vue.js 官方的单元测试实用工具库。 * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -66,7 +65,6 @@ Vue Test Utils 是 Vue.js 官方的单元测试实用工具库。 * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [isVisible](api/wrapper-array/isVisible.md) * [组件](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/zh-cn/SUMMARY.md b/docs/zh-cn/SUMMARY.md index 49b89620e..a1b1f092f 100644 --- a/docs/zh-cn/SUMMARY.md +++ b/docs/zh-cn/SUMMARY.md @@ -47,7 +47,6 @@ * [setProps](api/wrapper/setProps.md) * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) - * [update](api/wrapper/update.md) * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) @@ -62,7 +61,6 @@ * [setMethods](api/wrapper-array/setMethods.md) * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) - * [update](api/wrapper-array/update.md) * [isVisible](api/wrapper-array/isVisible.md) * [组件](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) diff --git a/docs/zh-cn/api/README.md b/docs/zh-cn/api/README.md index 4371fbb6c..dfe544178 100644 --- a/docs/zh-cn/api/README.md +++ b/docs/zh-cn/api/README.md @@ -35,7 +35,6 @@ * [setProps](./wrapper/setProps.md) * [text](./wrapper/text.md) * [trigger](./wrapper/trigger.md) - * [update](./wrapper/update.md) * [isVisible](./wrapper/isVisible.md) * [WrapperArray](./wrapper-array/README.md) * [at](./wrapper-array/at.md) @@ -50,7 +49,6 @@ * [setMethods](./wrapper-array/setMethods.md) * [setProps](./wrapper-array/setProps.md) * [trigger](./wrapper-array/trigger.md) - * [update](./wrapper-array/update.md) * [isVisible](./wrapper-array/isVisible.md) * [组件](./components/README.md) * [TransitionStub](./components/TransitionStub.md) diff --git a/docs/zh-cn/api/wrapper-array/update.md b/docs/zh-cn/api/wrapper-array/update.md deleted file mode 100644 index ea280de35..000000000 --- a/docs/zh-cn/api/wrapper-array/update.md +++ /dev/null @@ -1,19 +0,0 @@ -# `update()` - -强制 `WrapperArray` 的每个 `Wrapper` 都根 Vue 组件重渲染。 - -如果调用在 Vue 组件的包裹器数组上,则会强制每个 Vue 组件都重渲染。 - -- **示例:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -const divArray = wrapper.findAll('div') -expect(divArray.at(0).vm.bar).toBe('bar') -divArray.at(0).vm.bar = 'new value' -divArray.update() -expect(divArray.at(0).vm.bar).toBe('new value') -``` diff --git a/docs/zh-cn/api/wrapper/update.md b/docs/zh-cn/api/wrapper/update.md deleted file mode 100644 index 1bdc5d6ed..000000000 --- a/docs/zh-cn/api/wrapper/update.md +++ /dev/null @@ -1,18 +0,0 @@ -# `update()` - -强制根 Vue 组件重渲染。 - -如果在包含一个 `vm` 的 `Wrapper` 上调用,则会强制 `Wrapper` `vm` 重渲染。 - -- **示例:** - -```js -import { mount } from '@vue/test-utils' -import Foo from './Foo.vue' - -const wrapper = mount(Foo) -expect(wrapper.vm.bar).toBe('bar') -wrapper.vm.bar = 'new value' -wrapper.update() -expect(wrapper.vm.bar).toBe('new value') -``` diff --git a/flow/wrapper.flow.js b/flow/wrapper.flow.js index e07368600..3ceb4f6f8 100644 --- a/flow/wrapper.flow.js +++ b/flow/wrapper.flow.js @@ -34,11 +34,11 @@ declare interface BaseWrapper { // eslint-disable-line no-undef setMethods(methods: Object): void, setProps(data: Object): void, trigger(type: string, options: Object): void, - update(): void, destroy(): void } declare type WrapperOptions = { // eslint-disable-line no-undef attachedToDocument: boolean, + sync: boolean, error?: string } diff --git a/packages/shared/add-slots.js b/packages/create-instance/add-slots.js similarity index 98% rename from packages/shared/add-slots.js rename to packages/create-instance/add-slots.js index 94a45b1dc..d774918d9 100644 --- a/packages/shared/add-slots.js +++ b/packages/create-instance/add-slots.js @@ -1,7 +1,7 @@ // @flow import { compileToFunctions } from 'vue-template-compiler' -import { throwError } from './util' +import { throwError } from 'shared/util' function isValidSlot (slot: any): boolean { return true diff --git a/packages/create-instance/create-instance.js b/packages/create-instance/create-instance.js index 0fb190622..6dc98ee1c 100644 --- a/packages/create-instance/create-instance.js +++ b/packages/create-instance/create-instance.js @@ -1,6 +1,6 @@ // @flow -import { addSlots } from 'shared/add-slots' +import { addSlots } from './add-slots' import addMocks from './add-mocks' import addAttrs from './add-attrs' import addListeners from './add-listeners' diff --git a/packages/test-utils/src/create-wrapper.js b/packages/test-utils/src/create-wrapper.js index 6fe1cda97..23043460b 100644 --- a/packages/test-utils/src/create-wrapper.js +++ b/packages/test-utils/src/create-wrapper.js @@ -6,10 +6,9 @@ import VueWrapper from './vue-wrapper' export default function createWrapper ( node: VNode | Component, - update: Function, options: WrapperOptions ) { return node instanceof Vue ? new VueWrapper(node, options) - : new Wrapper(node, update, options) + : new Wrapper(node, options) } diff --git a/packages/test-utils/src/error-wrapper.js b/packages/test-utils/src/error-wrapper.js index 4217bd2b5..1599747ae 100644 --- a/packages/test-utils/src/error-wrapper.js +++ b/packages/test-utils/src/error-wrapper.js @@ -122,7 +122,7 @@ export default class ErrorWrapper implements BaseWrapper { } update (): void { - throwError(`find did not return ${this.selector}, cannot call update() on empty Wrapper`) + throwError(`update has been removed from vue-test-utils. All updates are now synchronous by default`) } destroy (): void { diff --git a/packages/test-utils/src/mount.js b/packages/test-utils/src/mount.js index 3853c8e6f..957ebec13 100644 --- a/packages/test-utils/src/mount.js +++ b/packages/test-utils/src/mount.js @@ -35,5 +35,10 @@ export default function mount (component: Component, options: Options = {}): Vue throw (componentWithError._error) } - return new VueWrapper(vm, { attachedToDocument: !!options.attachToDocument }) + const wrappperOptions = { + attachedToDocument: !!options.attachToDocument, + sync: !!((options.sync || options.sync === undefined)) + } + + return new VueWrapper(vm, wrappperOptions) } diff --git a/packages/test-utils/src/set-watchers-to-sync.js b/packages/test-utils/src/set-watchers-to-sync.js new file mode 100644 index 000000000..93fd85d7a --- /dev/null +++ b/packages/test-utils/src/set-watchers-to-sync.js @@ -0,0 +1,27 @@ +function setDepsSync (dep) { + dep.subs.forEach(setWatcherSync) +} + +function setWatcherSync (watcher) { + if (watcher.sync === true) { + return + } + watcher.sync = true + watcher.deps.forEach(setDepsSync) +} + +export function setWatchersToSync (vm) { + if (vm._watchers) { + vm._watchers.forEach(setWatcherSync) + } + + if (vm._computedWatchers) { + Object.keys(vm._computedWatchers).forEach((computedWatcher) => { + setWatcherSync(vm._computedWatchers[computedWatcher]) + }) + } + + setWatcherSync(vm._watcher) + + vm.$children.forEach(setWatchersToSync) +} diff --git a/packages/test-utils/src/vue-wrapper.js b/packages/test-utils/src/vue-wrapper.js index dc34a22a1..e85613e57 100644 --- a/packages/test-utils/src/vue-wrapper.js +++ b/packages/test-utils/src/vue-wrapper.js @@ -1,37 +1,11 @@ // @flow import Wrapper from './wrapper' -import { addSlots } from 'shared/add-slots' -import cloneDeep from 'lodash/cloneDeep' - -function update (changedData) { - // the only component made by mount() - if (this.$_originalSlots) { - this.$slots = cloneDeep(this.$_originalSlots) - } - if (this.$_mountingOptionsSlots) { - addSlots(this, this.$_mountingOptionsSlots) - } - if (changedData) { - Object.keys(changedData).forEach((key) => { - // $FlowIgnore : Problem with possibly null this.vm - this._watchers.forEach((watcher) => { - if (watcher.expression === key) { watcher.run() } - }) - }) - } else { - this._watchers.forEach(watcher => { - watcher.run() - }) - } - const vnodes = this._render() - this._update(vnodes) - this.$children.forEach(child => update.call(child)) -} +import { setWatchersToSync } from './set-watchers-to-sync' export default class VueWrapper extends Wrapper implements BaseWrapper { constructor (vm: Component, options: WrapperOptions) { - super(vm._vnode, update.bind(vm), options) + super(vm._vnode, options) // $FlowIgnore : issue with defineProperty - https://github.com/facebook/flow/issues/285 Object.defineProperty(this, 'vnode', ({ @@ -44,6 +18,9 @@ export default class VueWrapper extends Wrapper implements BaseWrapper { set: () => {} })) this.vm = vm + if (options.sync) { + setWatchersToSync(vm) + } this.isVueComponent = true this.isFunctionalComponent = vm.$options._isFunctionalContainer this._emitted = vm.__emitted diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index 6e79bd13e..6e27fd017 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -2,7 +2,10 @@ import type Wrapper from './wrapper' import type VueWrapper from './vue-wrapper' -import { throwError } from 'shared/util' +import { + throwError, + warn +} from 'shared/util' export default class WrapperArray implements BaseWrapper { wrappers: Array; @@ -186,8 +189,7 @@ export default class WrapperArray implements BaseWrapper { update (): void { this.throwErrorIfWrappersIsEmpty('update') - - this.wrappers.forEach(wrapper => wrapper.update()) + warn('update has been removed. All changes are now synchrnous without calling update') } destroy (): void { diff --git a/packages/test-utils/src/wrapper.js b/packages/test-utils/src/wrapper.js index 34e58232a..54f7d46e1 100644 --- a/packages/test-utils/src/wrapper.js +++ b/packages/test-utils/src/wrapper.js @@ -34,7 +34,7 @@ export default class Wrapper implements BaseWrapper { version: number; isFunctionalComponent: boolean; - constructor (node: VNode | Element, update: Function, options: WrapperOptions) { + constructor (node: VNode | Element, options: WrapperOptions) { if (node instanceof Element) { this.element = node this.vnode = null @@ -45,7 +45,6 @@ export default class Wrapper implements BaseWrapper { if (this.vnode && (this.vnode[FUNCTIONAL_OPTIONS] || this.vnode.functionalContext)) { this.isFunctionalComponent = true } - this.update = update this.options = options this.version = Number(`${Vue.version.split('.')[0]}.${Vue.version.split('.')[1]}`) } @@ -271,7 +270,7 @@ export default class Wrapper implements BaseWrapper { } return new ErrorWrapper(typeof selector === 'string' ? selector : 'Component') } - return createWrapper(nodes[0], this.update, this.options) + return createWrapper(nodes[0], this.options) } /** @@ -281,7 +280,7 @@ export default class Wrapper implements BaseWrapper { getSelectorTypeOrThrow(selector, 'findAll') const nodes = findAll(this.vm, this.vnode, this.element, selector) const wrappers = nodes.map(node => - createWrapper(node, this.update, this.options) + createWrapper(node, this.options) ) return new WrapperArray(wrappers) } @@ -418,8 +417,6 @@ export default class Wrapper implements BaseWrapper { // $FlowIgnore : Problem with possibly null this.vm this.vm.$set(this.vm, [key], data[key]) }) - - this.update(data) } /** @@ -468,7 +465,10 @@ export default class Wrapper implements BaseWrapper { }) } }) - this.update() + // $FlowIgnore : Problem with possibly null this.vm + this.vm._watchers.forEach((watcher) => { + watcher.run() + }) } /** @@ -484,7 +484,6 @@ export default class Wrapper implements BaseWrapper { // $FlowIgnore : Problem with possibly null this.vm this.vm.$options.methods[key] = methods[key] }) - this.update() } /** @@ -522,7 +521,6 @@ export default class Wrapper implements BaseWrapper { } }) - this.update(data) // $FlowIgnore : Problem with possibly null this.vm this.vnode = this.vm._vnode } @@ -620,6 +618,9 @@ export default class Wrapper implements BaseWrapper { } this.element.dispatchEvent(eventObject) - this.update() + } + + update () { + warn('update has been removed from vue-test-utils. All updates are now synchronous by default') } } diff --git a/packages/test-utils/types/test/wrapper.ts b/packages/test-utils/types/test/wrapper.ts index 2fd24a347..a4320bc3f 100644 --- a/packages/test-utils/types/test/wrapper.ts +++ b/packages/test-utils/types/test/wrapper.ts @@ -31,7 +31,6 @@ const arr: Array = emitted.hello const emittedByOrder = wrapper.emittedByOrder() const name: string = emittedByOrder[0].name -wrapper.update() wrapper.setComputed({computedProp: true}) wrapper.setData({ foo: 'bar' }) wrapper.setMethods({checked: true}) diff --git a/test/specs/error-wrapper.spec.js b/test/specs/error-wrapper.spec.js index 221c8da25..c4c766e57 100644 --- a/test/specs/error-wrapper.spec.js +++ b/test/specs/error-wrapper.spec.js @@ -4,7 +4,7 @@ import { compileToFunctions } from 'vue-template-compiler' describe('ErrorWrapper', () => { const methods = ['at', 'attributes', 'classes', 'contains', 'emitted', 'emittedByOrder', 'hasAttribute', 'hasClass', 'hasProp', 'hasStyle', 'find', 'findAll', 'filter', 'html', 'text', 'is', 'isEmpty', 'isVisible', 'isVueInstance', - 'name', 'props', 'setComputed', 'setMethods', 'setData', 'setProps', 'trigger', 'update', 'destroy'] + 'name', 'props', 'setComputed', 'setMethods', 'setData', 'setProps', 'trigger', 'destroy'] methods.forEach((method) => { it(`${method} throws error when called`, () => { const compiled = compileToFunctions('

') diff --git a/test/specs/mounting-options/attrs.spec.js b/test/specs/mounting-options/attrs.spec.js index e8fabcf79..300ce0bf5 100644 --- a/test/specs/mounting-options/attrs.spec.js +++ b/test/specs/mounting-options/attrs.spec.js @@ -15,7 +15,6 @@ describeWithMountingMethods('options.attrs', (mountingMethod) => { } }) expect(wrapper.vm.$attrs.anAttr).to.equal('an attribute') - wrapper.update() expect(wrapper.vm.$attrs.anAttr).to.equal('an attribute') }) diff --git a/test/specs/mounting-options/listeners.spec.js b/test/specs/mounting-options/listeners.spec.js index 6dcec65f4..c5f1a4896 100644 --- a/test/specs/mounting-options/listeners.spec.js +++ b/test/specs/mounting-options/listeners.spec.js @@ -13,7 +13,6 @@ describeWithShallowAndMount('options.listeners', (mountingMethod) => { }) expect(wrapper.vm.$listeners.aListener).to.equal(aListener) - wrapper.update() expect(wrapper.vm.$listeners.aListener).to.equal(aListener) }) diff --git a/test/specs/mounting-options/mocks.spec.js b/test/specs/mounting-options/mocks.spec.js index 36a5f6a5e..e34fc8c95 100644 --- a/test/specs/mounting-options/mocks.spec.js +++ b/test/specs/mounting-options/mocks.spec.js @@ -57,7 +57,6 @@ describeWithMountingMethods('options.mocks', (mountingMethod) => { }) expect(wrapper.text()).to.contain('value') $reactiveMock.value = 'changed value' - wrapper.update() expect(wrapper.text()).to.contain('changed value') }) diff --git a/test/specs/mounting-options/snyc.spec.js b/test/specs/mounting-options/snyc.spec.js new file mode 100644 index 000000000..90f1da847 --- /dev/null +++ b/test/specs/mounting-options/snyc.spec.js @@ -0,0 +1,53 @@ +import { describeWithShallowAndMount } from '~resources/utils' + +describeWithShallowAndMount('options.sync', (mountingMethod) => { + it('sets watchers to sync if set to true', () => { + const TestComponent = { + template: '

{{someData}}
', + data: () => ({ + someData: 'hello' + }) + } + const wrapper = mountingMethod(TestComponent, { + sync: true + }) + + expect(wrapper.text()).to.equal('hello') + wrapper.vm.someData = 'world' + expect(wrapper.text()).to.equal('world') + }) + + it('sets watchers to sync if undefined', () => { + const TestComponent = { + template: '
{{someData}}
', + data: () => ({ + someData: 'hello' + }) + } + const wrapper = mountingMethod(TestComponent) + + expect(wrapper.text()).to.equal('hello') + wrapper.vm.someData = 'world' + expect(wrapper.text()).to.equal('world') + }) + + it('does not set watchers to sync if set to false', (done) => { + const TestComponent = { + template: '
{{someData}}
', + data: () => ({ + someData: 'hello' + }) + } + const wrapper = mountingMethod(TestComponent, { + sync: false + }) + + expect(wrapper.text()).to.equal('hello') + wrapper.vm.someData = 'world' + expect(wrapper.text()).to.equal('hello') + setTimeout(() => { + expect(wrapper.text()).to.equal('world') + done() + }) + }) +}) diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index 6b7e47187..0d38ee37d 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -242,13 +242,6 @@ describe('WrapperArray', () => { expect(trigger.calledWith(event, options)).to.equal(true) }) - it('update calls update on each wrapper', () => { - const update = sinon.stub() - const wrapperArray = getWrapperArray([{ update }, { update }]) - wrapperArray.update() - expect(update.calledTwice).to.equal(true) - }) - it('destroy calls destroy on each wrapper', () => { const destroy = sinon.stub() const wrapperArray = getWrapperArray([{ destroy }, { destroy }]) diff --git a/test/specs/wrapper-array/update.spec.js b/test/specs/wrapper-array/update.spec.js deleted file mode 100644 index 12e19314f..000000000 --- a/test/specs/wrapper-array/update.spec.js +++ /dev/null @@ -1,24 +0,0 @@ -import { compileToFunctions } from 'vue-template-compiler' -import { mount } from '~vue/test-utils' -import ComponentWithVIf from '~resources/components/component-with-v-if.vue' - -describe('update', () => { - it('causes vm to re render', () => { - const TestComponent = { - render: h => h(ComponentWithVIf) - } - const wrapper = mount(TestComponent) - expect(wrapper.findAll('.child.ready').length).to.equal(0) - const component = wrapper.find(ComponentWithVIf) - component.vm.$set(component.vm, 'ready', true) - wrapper.findAll(ComponentWithVIf).update() - expect(wrapper.findAll('.child.ready').length).to.equal(1) - }) - - it('throws error if wrapper array contains no items', () => { - const compiled = compileToFunctions('
') - const message = '[vue-test-utils]: update cannot be called on 0 items' - const fn = () => mount(compiled).findAll('p').update('p') - expect(fn).to.throw().with.property('message', message) - }) -}) diff --git a/test/specs/wrapper/html.spec.js b/test/specs/wrapper/html.spec.js index dcf4db261..412068557 100644 --- a/test/specs/wrapper/html.spec.js +++ b/test/specs/wrapper/html.spec.js @@ -21,7 +21,6 @@ describeWithShallowAndMount('html', (mountingMethod) => { } }) const expectedHtml = '
1
test
' - wrapper.update() expect(wrapper.html()).to.equal(expectedHtml) }) diff --git a/test/specs/wrapper/isVisible.spec.js b/test/specs/wrapper/isVisible.spec.js index be2b6da83..13526ce59 100644 --- a/test/specs/wrapper/isVisible.spec.js +++ b/test/specs/wrapper/isVisible.spec.js @@ -28,7 +28,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns true if element has v-show true', () => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(false) @@ -40,7 +39,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns false if element has v-show true', () => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(false) @@ -52,7 +50,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns true if parent element has v-show true', () => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(false) @@ -64,7 +61,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns false if parent element has v-show false', () => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(false) @@ -77,7 +73,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) wrapper.vm.$set(wrapper.vm, 'rootReady', false) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(false) @@ -90,7 +85,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', false) wrapper.vm.$set(wrapper.vm, 'rootReady', true) - wrapper.update() const notReadyElement = wrapper.find('.not-ready') expect(notReadyElement.isVisible()).to.equal(true) @@ -103,7 +97,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) wrapper.vm.$set(wrapper.vm, 'rootReady', true) - wrapper.update() const readyChildElement = wrapper.find('.ready') expect(readyChildElement.isVisible()).to.equal(true) @@ -113,7 +106,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithVShow) wrapper.vm.$set(wrapper.vm, 'ready', true) wrapper.vm.$set(wrapper.vm, 'rootReady', true) - wrapper.update() const readyChildElement = wrapper.find('.ready, .not-ready') expect(readyChildElement.isVisible()).to.equal(false) @@ -122,7 +114,6 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('fails if one element is absent', () => { const wrapper = mountingMethod(ComponentWithVIf) wrapper.vm.$set(wrapper.vm, 'ready', false) - wrapper.update() const fn = () => wrapper.find('.child.ready').isVisible() expect(fn).to.throw() @@ -131,7 +122,7 @@ describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns true if one element is present', () => { const wrapper = mountingMethod(ComponentWithVIf) wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() + expect(wrapper.find('.child.ready').isVisible()).to.equal(true) }) }) diff --git a/test/specs/wrapper/setData.spec.js b/test/specs/wrapper/setData.spec.js index c7e26c862..d0cba10f5 100644 --- a/test/specs/wrapper/setData.spec.js +++ b/test/specs/wrapper/setData.spec.js @@ -35,7 +35,6 @@ describeWithShallowAndMount('setData', (mountingMethod) => { } const wrapper = mountingMethod(Component) wrapper.setData({ show: true }) - wrapper.update() expect(wrapper.element).to.equal(wrapper.vm.$el) expect(wrapper.hasClass('some-class')).to.be.true }) @@ -51,7 +50,7 @@ describeWithShallowAndMount('setData', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithWatch) const data1 = 'testest' wrapper.setData({ data2: 'newProp', data1 }) - expect(info.args[0][0]).to.equal(data1) + expect(info.args[1][0]).to.equal(data1) }) it('throws error if node is not a Vue instance', () => { diff --git a/test/specs/wrapper/setMethods.spec.js b/test/specs/wrapper/setMethods.spec.js index 5b508b110..8137decb7 100644 --- a/test/specs/wrapper/setMethods.spec.js +++ b/test/specs/wrapper/setMethods.spec.js @@ -14,7 +14,6 @@ describeWithShallowAndMount('setMethods', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithMethods) const someMethod = () => console.log('hey') wrapper.setMethods({ someMethod }) - wrapper.update() expect(wrapper.vm.someMethod).to.equal(someMethod) }) diff --git a/test/specs/wrapper/setProps.spec.js b/test/specs/wrapper/setProps.spec.js index 1db141d3d..89ab74670 100644 --- a/test/specs/wrapper/setProps.spec.js +++ b/test/specs/wrapper/setProps.spec.js @@ -78,7 +78,7 @@ describeWithShallowAndMount('setProps', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithWatch) const prop1 = 'testest' wrapper.setProps({ prop2: 'newProp', prop1 }) - expect(info.args[0][0]).to.equal(prop1) + expect(info.args[1][0]).to.equal(prop1) }) it('should not run watchers if prop updated is null', () => { diff --git a/test/specs/wrapper/update.spec.js b/test/specs/wrapper/update.spec.js deleted file mode 100644 index 8f2b504c2..000000000 --- a/test/specs/wrapper/update.spec.js +++ /dev/null @@ -1,79 +0,0 @@ -import { compileToFunctions } from 'vue-template-compiler' -import ComponentWithVIf from '~resources/components/component-with-v-if.vue' -import { describeWithShallowAndMount } from '~resources/utils' - -describeWithShallowAndMount('update', (mountingMethod) => { - it('causes vm to re render', () => { - const wrapper = mountingMethod(ComponentWithVIf) - expect(wrapper.findAll('.child.ready').length).to.equal(0) - wrapper.vm.$set(wrapper.vm, 'ready', true) - wrapper.update() - expect(wrapper.findAll('.child.ready').length).to.equal(1) - }) - - it('updates slot components', () => { - if (mountingMethod.name === 'shallow') return - const SlotComponent = compileToFunctions('
') - const Parent = { - template: ` - -
-
- `, - props: { - on: { - default: false, - type: Boolean - } - }, - components: { - SlotComponent - } - } - const parentWrapper = mountingMethod(Parent) - const innerEl = parentWrapper.find('.inner') - expect(innerEl.hasClass('is-on')).to.equal(false) - parentWrapper.setProps({ - on: true - }) - expect(innerEl.hasClass('is-on')).to.equal(true) - }) - - it('runs watchers', () => { - const TestComponent = { - template: ` -
- - -
- `, - data () { - return { - text: '', - showButton: false - } - }, - - watch: { - text () { - this.showButton = true - } - } - } - const wrapper = mountingMethod(TestComponent) - - wrapper.find('input').element.value = 'Value' - wrapper.find('input').trigger('input') - - expect(wrapper.vm.showButton).to.equal(true) - expect(wrapper.find('button').exists()).to.equal(true) - }) - - it('causes vm to re render, and retain slots', () => { - const compiled = compileToFunctions('
') - const wrapper = mountingMethod(compiled, { slots: { default: [compileToFunctions('
')] }}) - expect(wrapper.findAll('.test-div').length).to.equal(1) - wrapper.update() - expect(wrapper.findAll('.test-div').length).to.equal(1) - }) -})