From 825a9a132fc4e93d2e4a33250dcbb0c5c38fd512 Mon Sep 17 00:00:00 2001 From: Bill Date: Mon, 17 Aug 2020 21:14:20 -0400 Subject: [PATCH 1/6] feat(wrapperarray): make WrapperArray setData awaitable Make wrapperarray setData awaitable to be consistent with wrapper setData --- docs/api/wrapper-array/setData.md | 10 ++++++---- docs/ja/api/wrapper-array/setData.md | 10 ++++++---- docs/ru/api/wrapper-array/setData.md | 10 ++++++---- docs/zh/api/wrapper-array/setData.md | 10 ++++++---- packages/test-utils/src/wrapper-array.js | 4 ++-- test/specs/wrapper-array.spec.js | 6 +++--- 6 files changed, 29 insertions(+), 21 deletions(-) diff --git a/docs/api/wrapper-array/setData.md b/docs/api/wrapper-array/setData.md index d59bb102b..49895cd12 100644 --- a/docs/api/wrapper-array/setData.md +++ b/docs/api/wrapper-array/setData.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setData({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setData demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setData({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/ja/api/wrapper-array/setData.md b/docs/ja/api/wrapper-array/setData.md index f7746df2a..28e935946 100644 --- a/docs/ja/api/wrapper-array/setData.md +++ b/docs/ja/api/wrapper-array/setData.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setData({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setData demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setData({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/ru/api/wrapper-array/setData.md b/docs/ru/api/wrapper-array/setData.md index 080e76204..284a6f351 100644 --- a/docs/ru/api/wrapper-array/setData.md +++ b/docs/ru/api/wrapper-array/setData.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setData({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setData demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setData({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/zh/api/wrapper-array/setData.md b/docs/zh/api/wrapper-array/setData.md index 84600068f..2b9ec0069 100644 --- a/docs/zh/api/wrapper-array/setData.md +++ b/docs/zh/api/wrapper-array/setData.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setData({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setData demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setData({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index 12ca36844..81313669d 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -176,10 +176,10 @@ export default class WrapperArray implements BaseWrapper { } } - setData(data: Object): void { + setData(data: Object): Promise { this.throwErrorIfWrappersIsEmpty('setData') - this.wrappers.forEach(wrapper => wrapper.setData(data)) + return Promise.all(this.wrappers.map(wrapper => wrapper.setData(data))) } setMethods(props: Object): void { diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index f4de284a9..c3c111db7 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -219,11 +219,11 @@ describeWithShallowAndMount('WrapperArray', mountingMethod => { expect(setMethods).toHaveBeenCalledWith(methods) }) - it('setData calls setData on each wrapper', () => { - const setData = jest.fn() + it('setData calls setData on each wrapper', async () => { + const setData = jest.fn().mockResolvedValue() const data = {} const wrapperArray = getWrapperArray([{ setData }, { setData }]) - wrapperArray.setData(data) + await wrapperArray.setData(data) expect(setData).toHaveBeenCalledTimes(2) expect(setData).toHaveBeenCalledWith(data) }) From 100116512d6373707f689f7da0578a4300f062b7 Mon Sep 17 00:00:00 2001 From: Bill Date: Mon, 17 Aug 2020 21:34:02 -0400 Subject: [PATCH 2/6] feat(wrapperarray): make WrapperArray setProps awaitable Make wrapperarray setProps awaitable to be consistent with wrapper setData --- docs/api/wrapper-array/setProps.md | 10 ++++++---- docs/ja/api/wrapper-array/setProps.md | 10 ++++++---- docs/ru/api/wrapper-array/setProps.md | 10 ++++++---- docs/zh/api/wrapper-array/setProps.md | 10 ++++++---- packages/test-utils/src/wrapper-array.js | 4 ++-- test/specs/wrapper-array.spec.js | 6 +++--- 6 files changed, 29 insertions(+), 21 deletions(-) diff --git a/docs/api/wrapper-array/setProps.md b/docs/api/wrapper-array/setProps.md index eb99f4601..85c22e7db 100644 --- a/docs/api/wrapper-array/setProps.md +++ b/docs/api/wrapper-array/setProps.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setProps({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setProps demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setProps({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/ja/api/wrapper-array/setProps.md b/docs/ja/api/wrapper-array/setProps.md index a613b7dd4..0808bf18e 100644 --- a/docs/ja/api/wrapper-array/setProps.md +++ b/docs/ja/api/wrapper-array/setProps.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setProps({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setProps demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setProps({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/ru/api/wrapper-array/setProps.md b/docs/ru/api/wrapper-array/setProps.md index 07b66afa5..56fbfc3b4 100644 --- a/docs/ru/api/wrapper-array/setProps.md +++ b/docs/ru/api/wrapper-array/setProps.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setProps({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setProps demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setProps({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/docs/zh/api/wrapper-array/setProps.md b/docs/zh/api/wrapper-array/setProps.md index f2fb1469d..5cb935248 100644 --- a/docs/zh/api/wrapper-array/setProps.md +++ b/docs/zh/api/wrapper-array/setProps.md @@ -15,8 +15,10 @@ import { mount } from '@vue/test-utils' import Foo from './Foo.vue' import Bar from './Bar.vue' -const wrapper = mount(Foo) -const barArray = wrapper.findAll(Bar) -barArray.setProps({ foo: 'bar' }) -expect(barArray.at(0).vm.foo).toBe('bar') +test('setProps demo', async () => { + const wrapper = mount(Foo) + const barArray = wrapper.findAll(Bar) + await barArray.setProps({ foo: 'bar' }) + expect(barArray.at(0).vm.foo).toBe('bar') +}) ``` diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index 81313669d..d933f0e3d 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -188,10 +188,10 @@ export default class WrapperArray implements BaseWrapper { this.wrappers.forEach(wrapper => wrapper.setMethods(props)) } - setProps(props: Object): void { + setProps(props: Object): Promise { this.throwErrorIfWrappersIsEmpty('setProps') - this.wrappers.forEach(wrapper => wrapper.setProps(props)) + return Promise.all(this.wrappers.map(wrapper => wrapper.setProps(props))) } setValue(value: any): void { diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index c3c111db7..905dc02f0 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -228,11 +228,11 @@ describeWithShallowAndMount('WrapperArray', mountingMethod => { expect(setData).toHaveBeenCalledWith(data) }) - it('setProps calls setProps on each wrapper', () => { - const setProps = jest.fn() + it('setProps calls setProps on each wrapper', async () => { + const setProps = jest.fn().mockResolvedValue() const props = {} const wrapperArray = getWrapperArray([{ setProps }, { setProps }]) - wrapperArray.setProps(props) + await wrapperArray.setProps(props) expect(setProps).toHaveBeenCalledTimes(2) expect(setProps).toHaveBeenCalledWith(props) }) From c3ea90ad79da4d559d028e5722e5196a6c8a8f42 Mon Sep 17 00:00:00 2001 From: Bill Date: Mon, 17 Aug 2020 21:39:13 -0400 Subject: [PATCH 3/6] feat(wrapperarray): make WrapperArray setValue awaitable Make wrapperarray setValue awaitable to be consistent with wrapper setValue --- docs/api/wrapper-array/setValue.md | 14 ++++++++------ docs/ja/api/wrapper-array/setValue.md | 14 ++++++++------ docs/ru/api/wrapper-array/setValue.md | 14 ++++++++------ docs/zh/api/wrapper-array/setValue.md | 14 ++++++++------ packages/test-utils/src/wrapper-array.js | 4 ++-- test/specs/wrapper-array.spec.js | 9 +++++++++ 6 files changed, 43 insertions(+), 26 deletions(-) diff --git a/docs/api/wrapper-array/setValue.md b/docs/api/wrapper-array/setValue.md index 1a50d0f38..e21cbac0e 100644 --- a/docs/api/wrapper-array/setValue.md +++ b/docs/api/wrapper-array/setValue.md @@ -29,10 +29,12 @@ const wrapper = mount({ ` }) -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual('') -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setValue('foo') -expect(wrapper.vm.t1).toEqual('foo') -expect(wrapper.vm.t2).toEqual('foo') +test('setValue demo', async () => { + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual('') + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setValue('foo') + expect(wrapper.vm.t1).toEqual('foo') + expect(wrapper.vm.t2).toEqual('foo') +}) ``` diff --git a/docs/ja/api/wrapper-array/setValue.md b/docs/ja/api/wrapper-array/setValue.md index 80bb6ddaa..c0792d550 100644 --- a/docs/ja/api/wrapper-array/setValue.md +++ b/docs/ja/api/wrapper-array/setValue.md @@ -29,10 +29,12 @@ const wrapper = mount({ ` }) -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual('') -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setValue('foo') -expect(wrapper.vm.t1).toEqual('foo') -expect(wrapper.vm.t2).toEqual('foo') +test('setValue demo', async () => { + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual('') + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setValue('foo') + expect(wrapper.vm.t1).toEqual('foo') + expect(wrapper.vm.t2).toEqual('foo') +}) ``` diff --git a/docs/ru/api/wrapper-array/setValue.md b/docs/ru/api/wrapper-array/setValue.md index 33d2cfb24..99df83690 100644 --- a/docs/ru/api/wrapper-array/setValue.md +++ b/docs/ru/api/wrapper-array/setValue.md @@ -29,10 +29,12 @@ const wrapper = mount({ ` }) -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual('') -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setValue('foo') -expect(wrapper.vm.t1).toEqual('foo') -expect(wrapper.vm.t2).toEqual('foo') +test('setValue demo', async () => { + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual('') + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setValue('foo') + expect(wrapper.vm.t1).toEqual('foo') + expect(wrapper.vm.t2).toEqual('foo') +}) ``` diff --git a/docs/zh/api/wrapper-array/setValue.md b/docs/zh/api/wrapper-array/setValue.md index f6b1a2430..2852bd566 100644 --- a/docs/zh/api/wrapper-array/setValue.md +++ b/docs/zh/api/wrapper-array/setValue.md @@ -29,10 +29,12 @@ const wrapper = mount({ ` }) -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual('') -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setValue('foo') -expect(wrapper.vm.t1).toEqual('foo') -expect(wrapper.vm.t2).toEqual('foo') +test('setValue demo', async () => { + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual('') + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setValue('foo') + expect(wrapper.vm.t1).toEqual('foo') + expect(wrapper.vm.t2).toEqual('foo') +}) ``` diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index d933f0e3d..8d665d297 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -194,10 +194,10 @@ export default class WrapperArray implements BaseWrapper { return Promise.all(this.wrappers.map(wrapper => wrapper.setProps(props))) } - setValue(value: any): void { + setValue(value: any): Promise { this.throwErrorIfWrappersIsEmpty('setValue') - this.wrappers.forEach(wrapper => wrapper.setValue(value)) + return Promise.all(this.wrappers.map(wrapper => wrapper.setValue(value))) } setChecked(checked: boolean = true): void { diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index 905dc02f0..6457a7c10 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -237,6 +237,15 @@ describeWithShallowAndMount('WrapperArray', mountingMethod => { expect(setProps).toHaveBeenCalledWith(props) }) + it('setValue calls setValue on each wrapper', async () => { + const setValue = jest.fn().mockResolvedValue() + const value = {} + const wrapperArray = getWrapperArray([{ setValue }, { setValue }]) + await wrapperArray.setValue(value) + expect(setValue).toHaveBeenCalledTimes(2) + expect(setValue).toHaveBeenCalledWith(value) + }) + it('trigger calls trigger on each wrapper', () => { const trigger = jest.fn() const event = 'click' From a93781414d3464e523dd030de6233f5ad9d2ed4f Mon Sep 17 00:00:00 2001 From: Bill Date: Mon, 17 Aug 2020 21:46:34 -0400 Subject: [PATCH 4/6] feat(wrapperarray): make WrapperArray setChecked awaitable Make wrapperarray setChecked awaitable to be consistent with wrapper setChecked --- docs/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/ja/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/ru/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/zh/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- packages/test-utils/src/wrapper-array.js | 6 ++-- test/specs/wrapper-array.spec.js | 8 +++++ 6 files changed, 100 insertions(+), 82 deletions(-) diff --git a/docs/api/wrapper-array/setChecked.md b/docs/api/wrapper-array/setChecked.md index e59784c89..b8afcdef5 100644 --- a/docs/api/wrapper-array/setChecked.md +++ b/docs/api/wrapper-array/setChecked.md @@ -15,25 +15,27 @@ wrapperArray.wrappers.forEach(wrapper => wrapper.setChecked(checked)) ```js import { mount } from '@vue/test-utils' -const wrapper = mount({ - data() { - return { - t1: false, - t2: '' - } - }, - template: ` -
- - - -
` +test('setChecked demo', async () => { + const wrapper = mount({ + data() { + return { + t1: false, + t2: '' + } + }, + template: ` +
+ + + +
` + }) + + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual(false) + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setChecked() + expect(wrapper.vm.t1).toEqual(true) + expect(wrapper.vm.t2).toEqual('foo') }) - -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual(false) -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setChecked() -expect(wrapper.vm.t1).toEqual(true) -expect(wrapper.vm.t2).toEqual('foo') ``` diff --git a/docs/ja/api/wrapper-array/setChecked.md b/docs/ja/api/wrapper-array/setChecked.md index 9d2783ef8..9a7f95e83 100644 --- a/docs/ja/api/wrapper-array/setChecked.md +++ b/docs/ja/api/wrapper-array/setChecked.md @@ -15,25 +15,27 @@ wrapperArray.wrappers.forEach(wrapper => wrapper.setChecked(checked)) ```js import { mount } from '@vue/test-utils' -const wrapper = mount({ - data() { - return { - t1: false, - t2: '' - } - }, - template: ` -
- - - -
` +test('setChecked demo', async () => { + const wrapper = mount({ + data() { + return { + t1: false, + t2: '' + } + }, + template: ` +
+ + + +
` + }) + + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual(false) + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setChecked() + expect(wrapper.vm.t1).toEqual(true) + expect(wrapper.vm.t2).toEqual('foo') }) - -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual(false) -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setChecked() -expect(wrapper.vm.t1).toEqual(true) -expect(wrapper.vm.t2).toEqual('foo') ``` diff --git a/docs/ru/api/wrapper-array/setChecked.md b/docs/ru/api/wrapper-array/setChecked.md index ead59d2e6..0adb89e88 100644 --- a/docs/ru/api/wrapper-array/setChecked.md +++ b/docs/ru/api/wrapper-array/setChecked.md @@ -15,25 +15,27 @@ wrapperArray.wrappers.forEach(wrapper => wrapper.setChecked(checked)) ```js import { mount } from '@vue/test-utils' -const wrapper = mount({ - data() { - return { - t1: false, - t2: '' - } - }, - template: ` -
- - - -
` +test('setChecked demo', async () => { + const wrapper = mount({ + data() { + return { + t1: false, + t2: '' + } + }, + template: ` +
+ + + +
` + }) + + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual(false) + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setChecked() + expect(wrapper.vm.t1).toEqual(true) + expect(wrapper.vm.t2).toEqual('foo') }) - -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual(false) -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setChecked() -expect(wrapper.vm.t1).toEqual(true) -expect(wrapper.vm.t2).toEqual('foo') ``` diff --git a/docs/zh/api/wrapper-array/setChecked.md b/docs/zh/api/wrapper-array/setChecked.md index eb2a64c85..2da8984a8 100644 --- a/docs/zh/api/wrapper-array/setChecked.md +++ b/docs/zh/api/wrapper-array/setChecked.md @@ -15,25 +15,27 @@ wrapperArray.wrappers.forEach(wrapper => wrapper.setChecked(checked)) ```js import { mount } from '@vue/test-utils' -const wrapper = mount({ - data() { - return { - t1: false, - t2: '' - } - }, - template: ` -
- - - -
` +test('setChecked demo', async () => { + const wrapper = mount({ + data() { + return { + t1: false, + t2: '' + } + }, + template: ` +
+ + + +
` + }) + + const wrapperArray = wrapper.findAll('.foo') + expect(wrapper.vm.t1).toEqual(false) + expect(wrapper.vm.t2).toEqual('') + await wrapperArray.setChecked() + expect(wrapper.vm.t1).toEqual(true) + expect(wrapper.vm.t2).toEqual('foo') }) - -const wrapperArray = wrapper.findAll('.foo') -expect(wrapper.vm.t1).toEqual(false) -expect(wrapper.vm.t2).toEqual('') -wrapperArray.setChecked() -expect(wrapper.vm.t1).toEqual(true) -expect(wrapper.vm.t2).toEqual('foo') ``` diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index 8d665d297..27fed4e1c 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -200,10 +200,12 @@ export default class WrapperArray implements BaseWrapper { return Promise.all(this.wrappers.map(wrapper => wrapper.setValue(value))) } - setChecked(checked: boolean = true): void { + setChecked(checked: boolean = true): Promise { this.throwErrorIfWrappersIsEmpty('setChecked') - this.wrappers.forEach(wrapper => wrapper.setChecked(checked)) + return Promise.all( + this.wrappers.map(wrapper => wrapper.setChecked(checked)) + ) } setSelected(): void { diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index 6457a7c10..670002e09 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -246,6 +246,14 @@ describeWithShallowAndMount('WrapperArray', mountingMethod => { expect(setValue).toHaveBeenCalledWith(value) }) + it('setChecked calls setChecked on each wrapper', async () => { + const setChecked = jest.fn().mockResolvedValue() + const wrapperArray = getWrapperArray([{ setChecked }, { setChecked }]) + await wrapperArray.setChecked() + expect(setChecked).toHaveBeenCalledTimes(2) + expect(setChecked).toHaveBeenCalledWith(true) + }) + it('trigger calls trigger on each wrapper', () => { const trigger = jest.fn() const event = 'click' From e65960ad4073e00956bc1246217ba85898fba22c Mon Sep 17 00:00:00 2001 From: Bill Date: Tue, 18 Aug 2020 00:17:48 -0400 Subject: [PATCH 5/6] feat(wrapperarray): make WrapperArray trigger awaitable Make wrapperarray trigger awaitable to be consistent with wrapper trigger --- docs/api/wrapper-array/trigger.md | 16 +++++++++------- docs/ja/api/wrapper-array/trigger.md | 16 +++++++++------- docs/ru/api/wrapper-array/trigger.md | 16 +++++++++------- docs/zh/api/wrapper-array/trigger.md | 16 +++++++++------- packages/test-utils/src/wrapper-array.js | 6 ++++-- test/specs/wrapper-array.spec.js | 6 +++--- 6 files changed, 43 insertions(+), 33 deletions(-) diff --git a/docs/api/wrapper-array/trigger.md b/docs/api/wrapper-array/trigger.md index 167d258eb..010997057 100644 --- a/docs/api/wrapper-array/trigger.md +++ b/docs/api/wrapper-array/trigger.md @@ -16,12 +16,14 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo.vue' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) + + const divArray = wrapper.findAll('div') + await divArray.trigger('click') + expect(clickHandler.called).toBe(true) }) - -const divArray = wrapper.findAll('div') -divArray.trigger('click') -expect(clickHandler.called).toBe(true) ``` diff --git a/docs/ja/api/wrapper-array/trigger.md b/docs/ja/api/wrapper-array/trigger.md index 6df9a8631..7686a0180 100644 --- a/docs/ja/api/wrapper-array/trigger.md +++ b/docs/ja/api/wrapper-array/trigger.md @@ -15,12 +15,14 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo.vue' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } -}) +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) -const divArray = wrapper.findAll('div') -divArray.trigger('click') -expect(clickHandler.called).toBe(true) + const divArray = wrapper.findAll('div') + await divArray.trigger('click') + expect(clickHandler.called).toBe(true) +}) ``` diff --git a/docs/ru/api/wrapper-array/trigger.md b/docs/ru/api/wrapper-array/trigger.md index 53c3b5bd1..ed8533823 100644 --- a/docs/ru/api/wrapper-array/trigger.md +++ b/docs/ru/api/wrapper-array/trigger.md @@ -16,12 +16,14 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo.vue' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) + + const divArray = wrapper.findAll('div') + await divArray.trigger('click') + expect(clickHandler.called).toBe(true) }) - -const divArray = wrapper.findAll('div') -divArray.trigger('click') -expect(clickHandler.called).toBe(true) ``` diff --git a/docs/zh/api/wrapper-array/trigger.md b/docs/zh/api/wrapper-array/trigger.md index 7bcc17ceb..8bb794002 100644 --- a/docs/zh/api/wrapper-array/trigger.md +++ b/docs/zh/api/wrapper-array/trigger.md @@ -16,12 +16,14 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo.vue' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) + + const divArray = wrapper.findAll('div') + await divArray.trigger('click') + expect(clickHandler.called).toBe(true) }) - -const divArray = wrapper.findAll('div') -divArray.trigger('click') -expect(clickHandler.called).toBe(true) ``` diff --git a/packages/test-utils/src/wrapper-array.js b/packages/test-utils/src/wrapper-array.js index 27fed4e1c..f5bd64bf7 100644 --- a/packages/test-utils/src/wrapper-array.js +++ b/packages/test-utils/src/wrapper-array.js @@ -217,10 +217,12 @@ export default class WrapperArray implements BaseWrapper { ) } - trigger(event: string, options: Object): void { + trigger(event: string, options: Object): Promise { this.throwErrorIfWrappersIsEmpty('trigger') - this.wrappers.forEach(wrapper => wrapper.trigger(event, options)) + return Promise.all( + this.wrappers.map(wrapper => wrapper.trigger(event, options)) + ) } destroy(): void { diff --git a/test/specs/wrapper-array.spec.js b/test/specs/wrapper-array.spec.js index 670002e09..60c42fe2a 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -254,12 +254,12 @@ describeWithShallowAndMount('WrapperArray', mountingMethod => { expect(setChecked).toHaveBeenCalledWith(true) }) - it('trigger calls trigger on each wrapper', () => { - const trigger = jest.fn() + it('trigger calls trigger on each wrapper', async () => { + const trigger = jest.fn().mockResolvedValue() const event = 'click' const options = {} const wrapperArray = getWrapperArray([{ trigger }, { trigger }]) - wrapperArray.trigger(event, options) + await wrapperArray.trigger(event, options) expect(trigger).toHaveBeenCalledTimes(2) expect(trigger).toHaveBeenCalledWith(event, options) }) From bef0ac7cfe014ab4f98dcda44380de277f63bb77 Mon Sep 17 00:00:00 2001 From: Bill Date: Tue, 18 Aug 2020 00:21:36 -0400 Subject: [PATCH 6/6] docs(trigger): update trigger docs in other languages to be consistent --- docs/ja/api/wrapper/trigger.md | 24 +++++++++++++++--------- docs/ru/api/wrapper/trigger.md | 24 +++++++++++++++--------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/docs/ja/api/wrapper/trigger.md b/docs/ja/api/wrapper/trigger.md index ad1978f31..cf317f96a 100644 --- a/docs/ja/api/wrapper/trigger.md +++ b/docs/ja/api/wrapper/trigger.md @@ -16,18 +16,24 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } -}) +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) -wrapper.trigger('click') + await wrapper.trigger('click') -wrapper.trigger('click', { - button: 0 -}) + await wrapper.trigger('click', { + button: 0 + }) -expect(clickHandler.called).toBe(true) + await wrapper.trigger('click', { + ctrlKey: true + }) + + expect(clickHandler.called).toBe(true) +}) ``` - **イベントターゲットの設定:** diff --git a/docs/ru/api/wrapper/trigger.md b/docs/ru/api/wrapper/trigger.md index 8ffe627bb..afad509bf 100644 --- a/docs/ru/api/wrapper/trigger.md +++ b/docs/ru/api/wrapper/trigger.md @@ -16,18 +16,24 @@ import { mount } from '@vue/test-utils' import sinon from 'sinon' import Foo from './Foo' -const clickHandler = sinon.stub() -const wrapper = mount(Foo, { - propsData: { clickHandler } -}) +test('trigger demo', async () => { + const clickHandler = sinon.stub() + const wrapper = mount(Foo, { + propsData: { clickHandler } + }) -wrapper.trigger('click') + await wrapper.trigger('click') -wrapper.trigger('click', { - button: 0 -}) + await wrapper.trigger('click', { + button: 0 + }) -expect(clickHandler.called).toBe(true) + await wrapper.trigger('click', { + ctrlKey: true + }) + + expect(clickHandler.called).toBe(true) +}) ``` - **Установка target для event:**