Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c2ee13b

Browse filesBrowse files
feat: add generic for wrapper.find() and wrapper.get() (#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
Copy full SHA for c2ee13b

File tree

Expand file treeCollapse file tree

2 files changed

+7
-5
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+7
-5
lines changed

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

Copy file name to clipboardExpand all lines: packages/test-utils/types/index.d.ts
+4-4Lines changed: 4 additions & 4 deletions
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

Copy file name to clipboardExpand all lines: packages/test-utils/types/test/wrapper.ts
+3-1Lines changed: 3 additions & 1 deletion
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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.