Skip to content

Commit f94a0c0

Browse files
committed
test(templateRef): multiple elements with same ref
1 parent ed01d92 commit f94a0c0

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

packages/runtime-core/__tests__/helpers/useTemplateRef.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,28 @@ describe('useTemplateRef', () => {
125125
__DEV__ = true
126126
}
127127
})
128+
129+
// 12246
130+
test('should set last element if multiple with same key are defined', () => {
131+
let tRef: ShallowRef
132+
let key = 'refKey'
133+
134+
const Comp = {
135+
setup() {
136+
tRef = useTemplateRef(key)
137+
},
138+
render() {
139+
return h('div', [
140+
h('div', { ref: key }),
141+
h('div', { ref: key }),
142+
h('span', { ref: key }),
143+
])
144+
},
145+
}
146+
147+
const root = nodeOps.createElement('div')
148+
render(h(Comp), root)
149+
150+
expect(tRef!.value.tag).toBe('span')
151+
})
128152
})

packages/runtime-core/__tests__/rendererTemplateRef.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
type ShallowRef,
23
defineComponent,
34
h,
45
nextTick,
@@ -538,4 +539,27 @@ describe('api: template refs', () => {
538539
'<div><div>[object Object],[object Object]</div><ul><li>2</li><li>3</li></ul></div>',
539540
)
540541
})
542+
543+
// 12246
544+
test('should set last element if multiple with same key are defined', () => {
545+
let refKey: ShallowRef
546+
547+
const Comp = {
548+
setup() {
549+
refKey = ref()
550+
},
551+
render() {
552+
return h('div', [
553+
h('div', { ref: refKey }),
554+
h('div', { ref: refKey }),
555+
h('span', { ref: refKey }),
556+
])
557+
},
558+
}
559+
560+
const root = nodeOps.createElement('div')
561+
render(h(Comp), root)
562+
563+
expect(refKey!.value.tag).toBe('span')
564+
})
541565
})

0 commit comments

Comments
 (0)