Skip to content

Commit c2ee13b

Browse files
feat: add generic for wrapper.find() and wrapper.get() (vuejs#1871)
* feat: add generic for wrapper.find() and wrapper.get() * refactor: change HTMLElement -> Element * fix: fix the tests for wrapper * fix: forgot to apply the generic * test: added the simple test
1 parent d7fcff0 commit c2ee13b

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

packages/test-utils/types/index.d.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,15 @@ interface BaseWrapper {
7575
selector: Selector | void
7676
}
7777

78-
export interface Wrapper<V extends Vue | null> extends BaseWrapper {
78+
export interface Wrapper<V extends Vue | null, el extends Element = Element> extends BaseWrapper {
7979
readonly vm: V
80-
readonly element: HTMLElement
80+
readonly element: el
8181
readonly options: WrapperOptions
8282

8383
get<R extends Vue> (selector: VueClass<R>): Wrapper<R>
8484
get<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
8585
get<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
86-
get (selector: string): Wrapper<Vue>
86+
get<el extends Element>(selector: string): Wrapper<Vue, el>
8787
get (selector: RefSelector): Wrapper<Vue>
8888
get (selector: NameSelector): Wrapper<Vue>
8989

@@ -96,7 +96,7 @@ export interface Wrapper<V extends Vue | null> extends BaseWrapper {
9696
find<R extends Vue> (selector: VueClass<R>): Wrapper<R>
9797
find<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
9898
find<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
99-
find (selector: string): Wrapper<Vue>
99+
find<el extends Element>(selector: string): Wrapper<Vue, el>
100100
find (selector: RefSelector): Wrapper<Vue>
101101
find (selector: NameSelector): Wrapper<Vue>
102102

packages/test-utils/types/test/wrapper.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ wrapper.findComponent(ClassComponent)
5151
wrapper.vm.foo
5252
wrapper.vm.$emit('event', 'arg')
5353

54-
let el: HTMLElement = wrapper.element
54+
let el: Element = wrapper.element
5555

5656
let selector: Selector | void
5757

@@ -68,6 +68,8 @@ selector = found.selector
6868
found = wrapper.find({ name: 'my-button' })
6969
selector = found.selector
7070

71+
wrapper.find<HTMLInputElement>('input').element.value
72+
7173
let array = wrapper.findAll('.bar')
7274
selector = array.selector
7375
array = wrapper.findAll(normalOptions)

0 commit comments

Comments
 (0)