From 8cc665436395a284e0135378d3d272f5446380be Mon Sep 17 00:00:00 2001 From: Bill Glesias Date: Wed, 19 Aug 2020 04:30:06 -0400 Subject: [PATCH] Wrapper array consistency (#1650) * feat(wrapperarray): make WrapperArray setData awaitable Make wrapperarray setData awaitable to be consistent with wrapper setData * feat(wrapperarray): make WrapperArray setProps awaitable Make wrapperarray setProps awaitable to be consistent with wrapper setData * feat(wrapperarray): make WrapperArray setValue awaitable Make wrapperarray setValue awaitable to be consistent with wrapper setValue * feat(wrapperarray): make WrapperArray setChecked awaitable Make wrapperarray setChecked awaitable to be consistent with wrapper setChecked * feat(wrapperarray): make WrapperArray trigger awaitable Make wrapperarray trigger awaitable to be consistent with wrapper trigger * docs(trigger): update trigger docs in other languages to be consistent --- docs/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/api/wrapper-array/setData.md | 10 +++--- docs/api/wrapper-array/setProps.md | 10 +++--- docs/api/wrapper-array/setValue.md | 14 ++++---- docs/api/wrapper-array/trigger.md | 16 +++++---- docs/ja/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/ja/api/wrapper-array/setData.md | 10 +++--- docs/ja/api/wrapper-array/setProps.md | 10 +++--- docs/ja/api/wrapper-array/setValue.md | 14 ++++---- docs/ja/api/wrapper-array/trigger.md | 16 +++++---- docs/ja/api/wrapper/trigger.md | 24 +++++++++----- docs/ru/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/ru/api/wrapper-array/setData.md | 10 +++--- docs/ru/api/wrapper-array/setProps.md | 10 +++--- docs/ru/api/wrapper-array/setValue.md | 14 ++++---- docs/ru/api/wrapper-array/trigger.md | 16 +++++---- docs/ru/api/wrapper/trigger.md | 24 +++++++++----- docs/zh/api/wrapper-array/setChecked.md | 42 +++++++++++++----------- docs/zh/api/wrapper-array/setData.md | 10 +++--- docs/zh/api/wrapper-array/setProps.md | 10 +++--- docs/zh/api/wrapper-array/setValue.md | 14 ++++---- docs/zh/api/wrapper-array/trigger.md | 16 +++++---- packages/test-utils/src/wrapper-array.js | 24 ++++++++------ test/specs/wrapper-array.spec.js | 35 +++++++++++++++----- 24 files changed, 274 insertions(+), 201 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/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/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/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/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/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/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/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/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/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/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-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/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/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/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/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/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:** 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/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/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/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/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 12ca36844..f5bd64bf7 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 { @@ -188,22 +188,24 @@ 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 { + 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 { + 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 { @@ -215,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 f4de284a9..60c42fe2a 100644 --- a/test/specs/wrapper-array.spec.js +++ b/test/specs/wrapper-array.spec.js @@ -219,30 +219,47 @@ 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) }) - 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) }) - it('trigger calls trigger on each wrapper', () => { - const trigger = jest.fn() + 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('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', 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) })