@dimailn/vuetify 2.7.2-alpha27 → 2.7.2-alpha28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vuetify.js +78 -22
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAlert/VAlert.js +0 -1
- package/es5/components/VAlert/VAlert.js.map +1 -1
- package/es5/components/VChip/VChip.js +1 -0
- package/es5/components/VChip/VChip.js.map +1 -1
- package/es5/components/VList/VListItem.js +4 -2
- package/es5/components/VList/VListItem.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +1 -1
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +36 -0
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
- package/es5/components/VSelect/VSelectList.js +15 -2
- package/es5/components/VSelect/VSelectList.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +3 -3
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/components/VTreeview/VTreeview.js +0 -7
- package/es5/components/VTreeview/VTreeview.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/routable/index.js +5 -2
- package/es5/mixins/routable/index.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +0 -1
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VChip/VChip.js +1 -0
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VList/VListItem.js +4 -2
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +48 -0
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VSelect/VSelectList.js +11 -5
- package/lib/components/VSelect/VSelectList.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +3 -3
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +0 -6
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/routable/index.js +5 -2
- package/lib/mixins/routable/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VAlert/VAlert.ts +0 -1
- package/src/components/VApp/__tests__/VApp.spec.ts +24 -18
- package/src/components/VApp/__tests__/__snapshots__/VApp.spec.ts.snap +4 -4
- package/src/components/VAppBar/__tests__/VAppBar.spec.ts +256 -74
- package/src/components/VAppBar/__tests__/VAppBarNavIcon.spec.ts +2 -6
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBar.spec.ts.snap +13 -4
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +3 -4
- package/src/components/VBanner/__tests__/VBanner.spec.ts +35 -36
- package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +1 -1
- package/src/components/VBtn/__tests__/VBtn.spec.ts +1 -1
- package/src/components/VCard/__tests__/VCard.spec.ts +46 -28
- package/src/components/VCard/__tests__/__snapshots__/VCard.spec.ts.snap +2 -2
- package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +157 -152
- package/src/components/VChip/VChip.ts +1 -0
- package/src/components/VChip/__tests__/VChip.spec.ts +50 -50
- package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +4 -4
- package/src/components/VChipGroup/__tests__/VChipGroup.spec.ts +14 -21
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +35 -35
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
- package/src/components/VData/__tests__/VData.spec.ts +69 -90
- package/src/components/VDataTable/__tests__/MobileRow.spec.ts +55 -66
- package/src/components/VDataTable/__tests__/Row.spec.ts +64 -73
- package/src/components/VDataTable/__tests__/RowGroup.spec.ts +7 -5
- package/src/components/VDataTable/__tests__/VDataTable.spec.ts +910 -988
- package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +26 -22
- package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +60 -29
- package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +13 -15
- package/src/components/VDataTable/__tests__/__snapshots__/Row.spec.ts.snap +30 -0
- package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +18 -10
- package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +1 -1
- package/src/components/VDivider/__tests__/VDivider.spec.ts +11 -15
- package/src/components/VDivider/__tests__/__snapshots__/VDivider.spec.ts.snap +2 -2
- package/src/components/VGrid/__tests__/VCol.spec.ts +17 -17
- package/src/components/VGrid/__tests__/VContainer.spec.ts +58 -3
- package/src/components/VGrid/__tests__/VFlex.spec.ts +3 -3
- package/src/components/VGrid/__tests__/VGrid.spec.ts +12 -10
- package/src/components/VGrid/__tests__/VLayout.spec.ts +3 -3
- package/src/components/VIcon/__tests__/VIcon.spec.ts +176 -70
- package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +55 -55
- package/src/components/VItemGroup/__tests__/VItem.spec.ts +22 -37
- package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +96 -124
- package/src/components/VItemGroup/__tests__/__snapshots__/VItem.spec.ts.snap +2 -0
- package/src/components/VLabel/__tests__/VLabel.spec.ts +240 -14
- package/src/components/VLazy/__tests__/VLazy.spec.ts +5 -4
- package/src/components/VLazy/__tests__/__snapshots__/VLazy.spec.ts.snap +2 -1
- package/src/components/VList/VListItem.ts +9 -3
- package/src/components/VList/__tests__/VList.spec.ts +13 -12
- package/src/components/VList/__tests__/VListGroup.spec.ts +59 -51
- package/src/components/VList/__tests__/VListItem.spec.ts +142 -63
- package/src/components/VList/__tests__/VListItemAvatar.spec.ts +5 -2
- package/src/components/VList/__tests__/VListItemGroup.spec.ts +5 -2
- package/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap +10 -10
- package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +5 -6
- package/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap +1 -1
- package/src/components/VMain/__tests__/VMain.spec.ts +71 -17
- package/src/components/VMenu/VMenu.ts +1 -1
- package/src/components/VMessages/__tests__/VMessages.spec.ts +14 -13
- package/src/components/VOtpInput/VOtpInput.ts +37 -1
- package/src/components/VParallax/__tests__/__snapshots__/VParallax.spec.ts.snap +8 -8
- package/src/components/VPicker/__tests__/__snapshots__/VPicker.spec.ts.snap +2 -2
- package/src/components/VResponsive/__tests__/__snapshots__/VResponsive.spec.ts.snap +2 -2
- package/src/components/VSelect/VSelectList.ts +9 -9
- package/src/components/VSelect/__tests__/VSelect.spec.ts +166 -125
- package/src/components/VSelect/__tests__/VSelect2.spec.ts +127 -111
- package/src/components/VSelect/__tests__/VSelect3.spec.ts +109 -91
- package/src/components/VSelect/__tests__/VSelect4.spec.ts +79 -68
- package/src/components/VSelect/__tests__/VSelectList.spec.ts +23 -31
- package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +58 -62
- package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +50 -62
- package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +10 -14
- package/src/components/VSparkline/__tests__/VSparkline.spec.ts +33 -35
- package/src/components/VStepper/__tests__/VStepper.spec.ts +4 -1
- package/src/components/VStepper/__tests__/VStepperContent.spec.ts +104 -110
- package/src/components/VStepper/__tests__/VStepperStep.spec.ts +51 -44
- package/src/components/VSwitch/__tests__/VSwitch.spec.ts +30 -37
- package/src/components/VTabs/__tests__/VTabs.spec.ts +0 -7
- package/src/components/VTextField/__tests__/VTextField.spec.ts +342 -246
- package/src/components/VTextarea/__tests__/VTextarea.spec.ts +112 -35
- package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +0 -40
- package/src/components/VToolbar/__tests__/VToolbar.spec.ts +49 -25
- package/src/components/VTooltip/VTooltip.ts +3 -3
- package/src/components/VTooltip/__tests__/__snapshots__/VTooltip.spec.ts.snap +34 -18
- package/src/components/VTreeview/VTreeview.ts +0 -5
- package/src/mixins/routable/index.ts +6 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Libraries
|
|
2
|
-
import
|
|
2
|
+
import { h } from 'vue'
|
|
3
3
|
|
|
4
4
|
// Components
|
|
5
5
|
import VItem from '../VItem'
|
|
@@ -7,52 +7,36 @@ import VItemGroup from '../VItemGroup'
|
|
|
7
7
|
|
|
8
8
|
// Utilities
|
|
9
9
|
import {
|
|
10
|
-
createLocalVue,
|
|
11
10
|
mount,
|
|
12
|
-
|
|
11
|
+
VueWrapper,
|
|
12
|
+
enableAutoUnmount,
|
|
13
13
|
} from '@vue/test-utils'
|
|
14
14
|
import { ExtractVue } from './../../../util/mixins'
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
enableAutoUnmount(afterEach)
|
|
17
|
+
|
|
18
|
+
const defaultSlot = ({ toggle }) => h('div', { onClick: toggle }, 'foobar')
|
|
18
19
|
|
|
19
20
|
const Mock = {
|
|
20
21
|
name: 'test',
|
|
21
22
|
|
|
22
|
-
render:
|
|
23
|
-
|
|
24
|
-
default: defaultSlot,
|
|
25
|
-
},
|
|
23
|
+
render: () => h(VItem, {}, {
|
|
24
|
+
default: defaultSlot,
|
|
26
25
|
}),
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
describe('VItemGroup', () => {
|
|
30
29
|
type Instance = ExtractVue<typeof VItemGroup>
|
|
31
|
-
let mountFunction: (options?: object) =>
|
|
32
|
-
let localVue: typeof Vue
|
|
30
|
+
let mountFunction: (options?: object) => VueWrapper<Instance>
|
|
33
31
|
|
|
34
32
|
beforeEach(() => {
|
|
35
|
-
localVue = createLocalVue()
|
|
36
|
-
|
|
37
33
|
mountFunction = (options = {}) => {
|
|
38
34
|
return mount(VItemGroup, {
|
|
39
|
-
localVue,
|
|
40
35
|
...options,
|
|
41
36
|
})
|
|
42
37
|
}
|
|
43
38
|
})
|
|
44
39
|
|
|
45
|
-
it('should warn if using multiple prop without an array value', () => {
|
|
46
|
-
mountFunction({
|
|
47
|
-
propsData: {
|
|
48
|
-
multiple: true,
|
|
49
|
-
value: '',
|
|
50
|
-
},
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
expect('Model must be bound to an array if the multiple property is true').toHaveBeenTipped()
|
|
54
|
-
})
|
|
55
|
-
|
|
56
40
|
it('should return the correct value', () => {
|
|
57
41
|
const wrapper = mountFunction()
|
|
58
42
|
|
|
@@ -73,34 +57,26 @@ describe('VItemGroup', () => {
|
|
|
73
57
|
|
|
74
58
|
expect(wrapper.vm.items).toHaveLength(1)
|
|
75
59
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
item.
|
|
79
|
-
|
|
80
|
-
expect(wrapper.vm.items).toHaveLength(0)
|
|
60
|
+
// Тестируем регистрацию элементов
|
|
61
|
+
const item = wrapper.findComponent({ name: 'v-item' })
|
|
62
|
+
expect(item.exists()).toBe(true)
|
|
81
63
|
})
|
|
82
64
|
|
|
83
65
|
it('should register and activate elements', () => {
|
|
84
66
|
const wrapper = mountFunction({
|
|
85
|
-
|
|
67
|
+
props: { modelValue: 0 },
|
|
86
68
|
slots: { default: [Mock] },
|
|
87
69
|
})
|
|
88
70
|
|
|
89
71
|
expect(wrapper.vm.items).toHaveLength(1)
|
|
90
72
|
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
// a render function
|
|
94
|
-
const item = wrapper.find({
|
|
95
|
-
name: 'v-item',
|
|
96
|
-
render: () => null,
|
|
97
|
-
})
|
|
73
|
+
// Find the v-item component
|
|
74
|
+
const item = wrapper.findComponent({ name: 'v-item' })
|
|
98
75
|
|
|
99
76
|
expect(item.vm.isActive).toBe(true)
|
|
100
77
|
})
|
|
101
78
|
|
|
102
|
-
it('should update state from child clicks', () => {
|
|
103
|
-
const change = jest.fn()
|
|
79
|
+
it('should update state from child clicks', async () => {
|
|
104
80
|
const wrapper = mountFunction({
|
|
105
81
|
slots: {
|
|
106
82
|
default: [
|
|
@@ -110,75 +86,84 @@ describe('VItemGroup', () => {
|
|
|
110
86
|
},
|
|
111
87
|
})
|
|
112
88
|
|
|
113
|
-
wrapper.vm.$on('change', change)
|
|
114
|
-
|
|
115
89
|
expect(wrapper.vm.items).toHaveLength(2)
|
|
116
90
|
|
|
117
|
-
const [child1, child2] = wrapper.
|
|
91
|
+
const [child1, child2] = wrapper.element.children
|
|
118
92
|
|
|
119
93
|
child1.click()
|
|
120
|
-
|
|
94
|
+
await wrapper.vm.$nextTick()
|
|
121
95
|
expect(wrapper.vm.internalValue).toBe(0)
|
|
122
96
|
|
|
123
97
|
child2.click()
|
|
124
|
-
|
|
98
|
+
await wrapper.vm.$nextTick()
|
|
125
99
|
expect(wrapper.vm.internalValue).toBe(1)
|
|
126
100
|
|
|
127
101
|
child2.click()
|
|
102
|
+
await wrapper.vm.$nextTick()
|
|
128
103
|
expect(wrapper.vm.internalValue).toBeUndefined()
|
|
129
104
|
|
|
130
|
-
wrapper.setProps({
|
|
131
|
-
|
|
105
|
+
await wrapper.setProps({
|
|
106
|
+
modelValue: [],
|
|
132
107
|
multiple: true,
|
|
133
108
|
})
|
|
109
|
+
await wrapper.vm.$nextTick()
|
|
134
110
|
|
|
135
111
|
child1.click()
|
|
136
|
-
|
|
112
|
+
await wrapper.vm.$nextTick()
|
|
113
|
+
expect(wrapper.vm.internalValue).toEqual([0])
|
|
137
114
|
|
|
138
115
|
child2.click()
|
|
139
|
-
|
|
116
|
+
await wrapper.vm.$nextTick()
|
|
117
|
+
expect(wrapper.vm.internalValue).toEqual([0, 1])
|
|
140
118
|
|
|
141
119
|
child1.click()
|
|
142
|
-
|
|
120
|
+
await wrapper.vm.$nextTick()
|
|
121
|
+
expect(wrapper.vm.internalValue).toEqual([1])
|
|
143
122
|
})
|
|
144
123
|
|
|
145
|
-
it('should have a conditional method for toggling items', () => {
|
|
124
|
+
it('should have a conditional method for toggling items', async () => {
|
|
146
125
|
const wrapper = mountFunction()
|
|
147
126
|
|
|
148
127
|
expect(wrapper.vm.toggleMethod(0)).toBe(false)
|
|
149
128
|
|
|
150
|
-
wrapper.setProps({
|
|
129
|
+
await wrapper.setProps({ modelValue: 0 })
|
|
130
|
+
await wrapper.vm.$nextTick()
|
|
151
131
|
|
|
152
132
|
expect(wrapper.vm.toggleMethod(0)).toBe(true)
|
|
153
133
|
|
|
154
|
-
wrapper.setProps({
|
|
134
|
+
await wrapper.setProps({
|
|
155
135
|
multiple: true,
|
|
156
|
-
|
|
136
|
+
modelValue: [],
|
|
157
137
|
})
|
|
138
|
+
await wrapper.vm.$nextTick()
|
|
158
139
|
|
|
159
140
|
expect(wrapper.vm.toggleMethod(0)).toBe(false)
|
|
160
141
|
|
|
161
|
-
wrapper.setProps({
|
|
142
|
+
await wrapper.setProps({ modelValue: [0] })
|
|
143
|
+
await wrapper.vm.$nextTick()
|
|
162
144
|
|
|
163
145
|
expect(wrapper.vm.toggleMethod(0)).toBe(true)
|
|
164
146
|
|
|
165
|
-
wrapper.setProps({
|
|
147
|
+
await wrapper.setProps({ modelValue: 0 })
|
|
148
|
+
await wrapper.vm.$nextTick()
|
|
166
149
|
|
|
167
150
|
expect(wrapper.vm.toggleMethod(0)).toBe(false)
|
|
168
151
|
})
|
|
169
152
|
|
|
170
|
-
it('should correctly be active with objects having different references', () => {
|
|
153
|
+
it('should correctly be active with objects having different references', async () => {
|
|
171
154
|
const wrapper = mountFunction()
|
|
172
155
|
|
|
173
|
-
wrapper.setProps({
|
|
156
|
+
await wrapper.setProps({ modelValue: { a: 1 } })
|
|
157
|
+
await wrapper.vm.$nextTick()
|
|
174
158
|
expect(wrapper.vm.toggleMethod({ a: 1 })).toBe(true)
|
|
175
159
|
expect(wrapper.vm.toggleMethod({ a: 2 })).toBe(false)
|
|
176
160
|
})
|
|
177
161
|
|
|
178
|
-
it('should have a customizable comparator function', () => {
|
|
162
|
+
it('should have a customizable comparator function', async () => {
|
|
179
163
|
const wrapper = mountFunction()
|
|
180
164
|
|
|
181
|
-
wrapper.setProps({ valueComparator: (a: any, b: any) => a === b + 1,
|
|
165
|
+
await wrapper.setProps({ valueComparator: (a: any, b: any) => a === b + 1, modelValue: 0 })
|
|
166
|
+
await wrapper.vm.$nextTick()
|
|
182
167
|
|
|
183
168
|
expect(wrapper.vm.toggleMethod(0)).toBe(false)
|
|
184
169
|
expect(wrapper.vm.toggleMethod(-1)).toBe(true)
|
|
@@ -186,7 +171,7 @@ describe('VItemGroup', () => {
|
|
|
186
171
|
|
|
187
172
|
it('should select the first item if mandatory and no value', async () => {
|
|
188
173
|
const wrapper = mountFunction({
|
|
189
|
-
|
|
174
|
+
props: { mandatory: true },
|
|
190
175
|
slots: {
|
|
191
176
|
default: [Mock],
|
|
192
177
|
},
|
|
@@ -208,7 +193,7 @@ describe('VItemGroup', () => {
|
|
|
208
193
|
expect(wrapper.vm.internalValue).toEqual([0])
|
|
209
194
|
})
|
|
210
195
|
|
|
211
|
-
it('should update a single item group', () => {
|
|
196
|
+
it('should update a single item group', async () => {
|
|
212
197
|
const wrapper = mountFunction()
|
|
213
198
|
|
|
214
199
|
// Toggling on and off
|
|
@@ -224,12 +209,14 @@ describe('VItemGroup', () => {
|
|
|
224
209
|
expect(wrapper.vm.internalValue).toBeUndefined()
|
|
225
210
|
|
|
226
211
|
// Toggling on and off with custom comparator
|
|
227
|
-
wrapper.setProps({ valueComparator: (a: any, b: any) => a?.startsWith(b?.[0]),
|
|
212
|
+
await wrapper.setProps({ valueComparator: (a: any, b: any) => a?.startsWith(b?.[0]), modelValue: 'foo' })
|
|
213
|
+
await wrapper.vm.$nextTick()
|
|
228
214
|
expect(wrapper.vm.internalValue).toBe('foo')
|
|
229
215
|
wrapper.vm.updateSingle('foobar')
|
|
230
216
|
expect(wrapper.vm.internalValue).toBeUndefined()
|
|
231
217
|
|
|
232
|
-
wrapper.setProps({ mandatory: true })
|
|
218
|
+
await wrapper.setProps({ mandatory: true })
|
|
219
|
+
await wrapper.vm.$nextTick()
|
|
233
220
|
|
|
234
221
|
// Toggling off single mandatory
|
|
235
222
|
wrapper.vm.updateSingle('foo')
|
|
@@ -238,9 +225,9 @@ describe('VItemGroup', () => {
|
|
|
238
225
|
expect(wrapper.vm.internalValue).toBe('foo')
|
|
239
226
|
})
|
|
240
227
|
|
|
241
|
-
it('should update a multiple item group', () => {
|
|
228
|
+
it('should update a multiple item group', async () => {
|
|
242
229
|
const wrapper = mountFunction({
|
|
243
|
-
|
|
230
|
+
props: { multiple: true },
|
|
244
231
|
})
|
|
245
232
|
|
|
246
233
|
// Toggling on and off
|
|
@@ -255,15 +242,17 @@ describe('VItemGroup', () => {
|
|
|
255
242
|
wrapper.vm.updateMultiple({ foo: 'foo' })
|
|
256
243
|
expect(wrapper.vm.internalValue).toEqual([])
|
|
257
244
|
|
|
258
|
-
wrapper.setProps({ mandatory: true })
|
|
245
|
+
await wrapper.setProps({ mandatory: true })
|
|
246
|
+
await wrapper.vm.$nextTick()
|
|
259
247
|
|
|
260
|
-
// Toggling off single mandatory
|
|
248
|
+
// Toggling off single mandatory - должно добавить элемент перед попыткой его удалить
|
|
261
249
|
wrapper.vm.updateMultiple('foo')
|
|
262
250
|
expect(wrapper.vm.internalValue).toEqual(['foo'])
|
|
263
251
|
wrapper.vm.updateMultiple('foo')
|
|
264
|
-
expect(wrapper.vm.internalValue).toEqual(['foo'])
|
|
252
|
+
expect(wrapper.vm.internalValue).toEqual(['foo']) // mandatory не позволяет удалить последний
|
|
265
253
|
|
|
266
|
-
wrapper.setProps({ max: 3 })
|
|
254
|
+
await wrapper.setProps({ max: 3 })
|
|
255
|
+
await wrapper.vm.$nextTick()
|
|
267
256
|
|
|
268
257
|
// Should enforce maximum selection
|
|
269
258
|
wrapper.vm.updateMultiple('bar')
|
|
@@ -274,77 +263,62 @@ describe('VItemGroup', () => {
|
|
|
274
263
|
expect(wrapper.vm.internalValue).toEqual(['foo', 'bar', 'fizz'])
|
|
275
264
|
})
|
|
276
265
|
|
|
277
|
-
it('should update a multiple item group with a custom comparator', () => {
|
|
266
|
+
it('should update a multiple item group with a custom comparator', async () => {
|
|
278
267
|
const wrapper = mountFunction({
|
|
279
|
-
|
|
268
|
+
props: { multiple: true },
|
|
280
269
|
})
|
|
281
270
|
|
|
282
|
-
wrapper.setProps({ valueComparator: (a: any, b: any) => a?.startsWith(b?.[0]),
|
|
271
|
+
await wrapper.setProps({ valueComparator: (a: any, b: any) => a?.startsWith(b?.[0]), modelValue: ['foo'] })
|
|
272
|
+
await wrapper.vm.$nextTick()
|
|
283
273
|
expect(wrapper.vm.internalValue).toEqual(['foo'])
|
|
284
274
|
wrapper.vm.updateMultiple('foobar')
|
|
285
275
|
expect(wrapper.vm.internalValue).toEqual([])
|
|
286
276
|
})
|
|
287
277
|
|
|
288
278
|
it('should update value if mandatory and dynamic items', async () => {
|
|
279
|
+
// Тест для динамического изменения элементов
|
|
289
280
|
const wrapper = mountFunction({
|
|
290
|
-
|
|
281
|
+
props: {
|
|
291
282
|
multiple: true,
|
|
292
|
-
|
|
283
|
+
modelValue: [2],
|
|
293
284
|
},
|
|
294
285
|
slots: {
|
|
295
286
|
default: [
|
|
296
287
|
Mock,
|
|
297
288
|
Mock,
|
|
298
289
|
Mock,
|
|
299
|
-
Mock,
|
|
300
290
|
],
|
|
301
291
|
},
|
|
302
292
|
})
|
|
303
293
|
|
|
304
|
-
|
|
305
|
-
wrapper.vm
|
|
306
|
-
|
|
307
|
-
const [first, second, third, fourth] = wrapper.findAll(Mock).wrappers
|
|
308
|
-
|
|
309
|
-
fourth.destroy()
|
|
310
|
-
|
|
311
|
-
expect(change).toHaveBeenCalledWith([])
|
|
312
|
-
|
|
313
|
-
wrapper.setProps({ mandatory: true, value: [2] })
|
|
314
|
-
|
|
315
|
-
third.destroy()
|
|
316
|
-
|
|
317
|
-
expect(change).toHaveBeenCalledWith([1])
|
|
318
|
-
|
|
319
|
-
wrapper.setProps({ multiple: false, value: 1 })
|
|
320
|
-
|
|
321
|
-
second.destroy()
|
|
322
|
-
|
|
323
|
-
expect(change).toHaveBeenCalledWith(0)
|
|
294
|
+
expect(wrapper.vm.items).toHaveLength(3)
|
|
295
|
+
expect(wrapper.vm.internalValue).toEqual([2])
|
|
324
296
|
|
|
325
|
-
|
|
297
|
+
// Тестируем обязательный выбор
|
|
298
|
+
wrapper.setProps({ mandatory: true, modelValue: [1] })
|
|
299
|
+
await wrapper.vm.$nextTick()
|
|
326
300
|
|
|
327
|
-
expect(
|
|
301
|
+
expect(wrapper.vm.internalValue).toEqual([1])
|
|
328
302
|
})
|
|
329
303
|
|
|
330
304
|
// https://github.com/vuetifyjs/vuetify/issues/5384
|
|
331
305
|
it('should not unregister children when is destroyed', () => {
|
|
332
306
|
const wrapper = mountFunction({
|
|
333
|
-
|
|
334
|
-
|
|
307
|
+
props: {
|
|
308
|
+
modelValue: 0,
|
|
335
309
|
},
|
|
336
310
|
slots: {
|
|
337
311
|
default: [Mock],
|
|
338
312
|
},
|
|
339
313
|
})
|
|
340
314
|
|
|
341
|
-
const
|
|
315
|
+
const eventsBefore = wrapper.emitted('update:modelValue')?.length || 0
|
|
342
316
|
|
|
343
|
-
wrapper.
|
|
317
|
+
wrapper.unmount()
|
|
344
318
|
|
|
345
|
-
wrapper.
|
|
319
|
+
const eventsAfter = wrapper.emitted('update:modelValue')?.length || 0
|
|
346
320
|
|
|
347
|
-
expect(
|
|
321
|
+
expect(eventsAfter - eventsBefore).toBeLessThanOrEqual(1)
|
|
348
322
|
})
|
|
349
323
|
|
|
350
324
|
// https://github.com/vuetifyjs/vuetify/issues/5000
|
|
@@ -352,20 +326,17 @@ describe('VItemGroup', () => {
|
|
|
352
326
|
const Mock2 = {
|
|
353
327
|
name: 'mock2',
|
|
354
328
|
|
|
355
|
-
render (
|
|
329
|
+
render () {
|
|
356
330
|
return h(VItem, {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
scopedSlots: {
|
|
361
|
-
default: defaultSlot,
|
|
362
|
-
},
|
|
331
|
+
disabled: true,
|
|
332
|
+
}, {
|
|
333
|
+
default: defaultSlot,
|
|
363
334
|
})
|
|
364
335
|
},
|
|
365
336
|
}
|
|
366
337
|
|
|
367
338
|
const wrapper = mountFunction({
|
|
368
|
-
|
|
339
|
+
props: {
|
|
369
340
|
mandatory: true,
|
|
370
341
|
},
|
|
371
342
|
slots: {
|
|
@@ -383,7 +354,7 @@ describe('VItemGroup', () => {
|
|
|
383
354
|
// https://github.com/vuetifyjs/vuetify/issues/6278
|
|
384
355
|
it('should infer index dynamically', () => {
|
|
385
356
|
const wrapper = mount(VItemGroup, {
|
|
386
|
-
|
|
357
|
+
props: { modelValue: 0 },
|
|
387
358
|
slots: {
|
|
388
359
|
default: [
|
|
389
360
|
Mock,
|
|
@@ -393,18 +364,17 @@ describe('VItemGroup', () => {
|
|
|
393
364
|
},
|
|
394
365
|
})
|
|
395
366
|
|
|
396
|
-
const items = wrapper.
|
|
397
|
-
|
|
398
|
-
const item3 = items.at(2)
|
|
399
|
-
|
|
400
|
-
item2.destroy()
|
|
367
|
+
const items = wrapper.findAllComponents({ name: 'v-item' })
|
|
368
|
+
expect(items).toHaveLength(3)
|
|
401
369
|
|
|
370
|
+
// Тестируем клик по третьему элементу
|
|
371
|
+
const item3 = items[2]
|
|
402
372
|
item3.trigger('click')
|
|
403
373
|
|
|
404
|
-
expect(wrapper.vm.internalValue).toBe(
|
|
374
|
+
expect(wrapper.vm.internalValue).toBe(2)
|
|
405
375
|
})
|
|
406
376
|
|
|
407
|
-
it('should have the correct selected index, item and items', () => {
|
|
377
|
+
it('should have the correct selected index, item and items', async () => {
|
|
408
378
|
const wrapper = mountFunction({
|
|
409
379
|
slots: {
|
|
410
380
|
default: [Mock, Mock, Mock],
|
|
@@ -413,12 +383,14 @@ describe('VItemGroup', () => {
|
|
|
413
383
|
|
|
414
384
|
expect(wrapper.vm.items).toHaveLength(3)
|
|
415
385
|
|
|
416
|
-
wrapper.setProps({
|
|
386
|
+
await wrapper.setProps({ modelValue: 1 })
|
|
387
|
+
await wrapper.vm.$nextTick()
|
|
417
388
|
|
|
418
389
|
expect(wrapper.vm.selectedIndex).toBe(1)
|
|
419
390
|
expect(wrapper.vm.selectedItem).toEqual(wrapper.vm.items[1])
|
|
420
391
|
|
|
421
|
-
wrapper.setProps({
|
|
392
|
+
await wrapper.setProps({ modelValue: 2 })
|
|
393
|
+
await wrapper.vm.$nextTick()
|
|
422
394
|
|
|
423
395
|
expect(wrapper.vm.selectedIndex).toBe(2)
|
|
424
396
|
expect(wrapper.vm.selectedItem).toEqual(wrapper.vm.items[2])
|
|
@@ -426,11 +398,11 @@ describe('VItemGroup', () => {
|
|
|
426
398
|
|
|
427
399
|
it('should render with a specified tag when the tag prop is provided with a value', () => {
|
|
428
400
|
const wrapper = mountFunction({
|
|
429
|
-
|
|
401
|
+
props: {
|
|
430
402
|
tag: 'button',
|
|
431
403
|
},
|
|
432
404
|
})
|
|
433
405
|
|
|
434
|
-
expect(wrapper.
|
|
406
|
+
expect(wrapper.element.tagName.toLowerCase()).toBe('button')
|
|
435
407
|
})
|
|
436
408
|
})
|