Skip to content

Commit 0fba4d1

Browse files
committed
chore: Add regression tests for #1476
1 parent 5fa2d72 commit 0fba4d1

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

tests/components/Issue1476.vue

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<template>
2+
<div>
3+
<template v-for="field of availableFields" :key="field.name">
4+
<button class="field" @click="selectedField = field">
5+
{{ field.name }}
6+
</button>
7+
<div
8+
v-if="selectedField === field"
9+
class="selectedField"
10+
>
11+
{{ field.name }}
12+
</div>
13+
</template>
14+
</div>
15+
</template>
16+
17+
<script>
18+
export default {
19+
props: {
20+
availableFields: { type: Array, required: true }
21+
},
22+
data: () => ({
23+
selectedField: ''
24+
})
25+
}
26+
</script>

tests/props.spec.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import PropWithSymbol from './components/PropWithSymbol.vue'
44
import Hello from './components/Hello.vue'
55
import { defineComponent, h, isRef, ref } from 'vue'
66
import Title from './components/FunctionComponent'
7+
import Issue1476 from './components/Issue1476.vue'
78

89
describe('props', () => {
910
it('returns a single prop applied to a component', () => {
@@ -182,6 +183,27 @@ describe('props', () => {
182183
expect(wrapper.find('span').text()).toBe('Some value')
183184
})
184185

186+
it('should keep props as same object', async () => {
187+
// https://github.com/vuejs/test-utils/issues/1476
188+
const wrapper = mount(Issue1476, {
189+
props: {
190+
availableFields: [{ name: 'Animals' }, { name: 'Cities' }]
191+
}
192+
})
193+
194+
expect(wrapper.find('.subField').exists()).toBe(false)
195+
196+
await wrapper.findAll('.field')[0].trigger('click')
197+
198+
expect(wrapper.find('.selectedField').exists()).toBe(true)
199+
expect(wrapper.find('.selectedField').text()).toBe('Animals')
200+
201+
await wrapper.findAll('.field')[1].trigger('click')
202+
203+
expect(wrapper.find('.selectedField').exists()).toBe(true)
204+
expect(wrapper.find('.selectedField').text()).toBe('Cities')
205+
})
206+
185207
it('returns reactive props on a stubbed component shallow case', async () => {
186208
const Foo = {
187209
name: 'Foo',

0 commit comments

Comments
 (0)