From 5005b1c8000b5a9655656100d1dc68d4fb52167d Mon Sep 17 00:00:00 2001 From: eddyerburgh Date: Sun, 23 Dec 2018 11:55:03 +0000 Subject: [PATCH 1/3] fix: improve filter typing --- packages/test-utils/types/index.d.ts | 16 +++++++++++----- packages/test-utils/types/test/wrapper.ts | 6 +++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/test-utils/types/index.d.ts b/packages/test-utils/types/index.d.ts index b81c4cc7d..43cc3ff04 100644 --- a/packages/test-utils/types/index.d.ts +++ b/packages/test-utils/types/index.d.ts @@ -113,11 +113,17 @@ export interface Wrapper extends BaseWrapper { } export interface WrapperArray extends BaseWrapper { - readonly length: number - readonly wrappers: Array> - - at (index: number): Wrapper - filter (predicate: Function): WrapperArray + readonly length: number; + readonly wrappers: Array>; + + at(index: number): Wrapper; + filter( + predicate: ( + value: Wrapper, + index: number, + array: Wrapper[] + ) => any + ): WrapperArray; } interface WrapperOptions { diff --git a/packages/test-utils/types/test/wrapper.ts b/packages/test-utils/types/test/wrapper.ts index 222030e16..c5f2607db 100644 --- a/packages/test-utils/types/test/wrapper.ts +++ b/packages/test-utils/types/test/wrapper.ts @@ -79,7 +79,11 @@ wrapper.attributes('foo') */ let num: number = array.length found = array.at(1) -array = array.filter((a: any) => a === true) +array = array.filter((w, i, arr) => { + i + 2 + arr.length + return w.is('div') +}) let createdWrapper = createWrapper(new Vue().$mount()) createdWrapper.text() From 0ffe5cfeef7468b692d4c5e4bec9e23ea57954a4 Mon Sep 17 00:00:00 2001 From: eddyerburgh Date: Sun, 23 Dec 2018 13:21:56 +0000 Subject: [PATCH 2/3] test: add test for emitted --- test/specs/wrapper/emitted.spec.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/specs/wrapper/emitted.spec.js b/test/specs/wrapper/emitted.spec.js index 681176458..62def285a 100644 --- a/test/specs/wrapper/emitted.spec.js +++ b/test/specs/wrapper/emitted.spec.js @@ -1,4 +1,4 @@ -import { createLocalVue } from '~vue/test-utils' +import { createLocalVue, createWrapper } from '~vue/test-utils' import { describeWithShallowAndMount, vueVersion } from '~resources/utils' import { itDoNotRunIf } from 'conditional-specs' import Vue from 'vue' @@ -158,4 +158,14 @@ describeWithShallowAndMount('emitted', mountingMethod => { expect(wrapper.find({ name: 'bar' }).emitted('foo')).to.exist }) + + it('captures emitted events on $root instance', () => { + const wrapper = mountingMethod({ + render: h => h('div') + }) + + wrapper.vm.$root.$emit('foo') + const rootWrapper = createWrapper(wrapper.vm.$root) + expect(rootWrapper.emitted('foo')).to.exist + }) }) From ab16ed60bd7aee3c152807609b54ef6840e37801 Mon Sep 17 00:00:00 2001 From: eddyerburgh Date: Sun, 23 Dec 2018 13:24:33 +0000 Subject: [PATCH 3/3] refactor: remove type changes --- packages/test-utils/types/index.d.ts | 16 +++++----------- packages/test-utils/types/test/wrapper.ts | 6 +----- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/test-utils/types/index.d.ts b/packages/test-utils/types/index.d.ts index 43cc3ff04..b81c4cc7d 100644 --- a/packages/test-utils/types/index.d.ts +++ b/packages/test-utils/types/index.d.ts @@ -113,17 +113,11 @@ export interface Wrapper extends BaseWrapper { } export interface WrapperArray extends BaseWrapper { - readonly length: number; - readonly wrappers: Array>; - - at(index: number): Wrapper; - filter( - predicate: ( - value: Wrapper, - index: number, - array: Wrapper[] - ) => any - ): WrapperArray; + readonly length: number + readonly wrappers: Array> + + at (index: number): Wrapper + filter (predicate: Function): WrapperArray } interface WrapperOptions { diff --git a/packages/test-utils/types/test/wrapper.ts b/packages/test-utils/types/test/wrapper.ts index c5f2607db..222030e16 100644 --- a/packages/test-utils/types/test/wrapper.ts +++ b/packages/test-utils/types/test/wrapper.ts @@ -79,11 +79,7 @@ wrapper.attributes('foo') */ let num: number = array.length found = array.at(1) -array = array.filter((w, i, arr) => { - i + 2 - arr.length - return w.is('div') -}) +array = array.filter((a: any) => a === true) let createdWrapper = createWrapper(new Vue().$mount()) createdWrapper.text()