@dimailn/vuetify 2.7.2-alpha21 → 2.7.2-alpha23

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.
Files changed (79) hide show
  1. package/dist/vuetify.js +141 -72
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VForm/VForm.js +44 -30
  6. package/es5/components/VForm/VForm.js.map +1 -1
  7. package/es5/components/VOverlay/VOverlay.js +2 -3
  8. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  9. package/es5/components/VProgressCircular/VProgressCircular.js +5 -3
  10. package/es5/components/VProgressCircular/VProgressCircular.js.map +1 -1
  11. package/es5/components/VProgressLinear/VProgressLinear.js +41 -19
  12. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  13. package/es5/components/VTabs/VTabsBar.js.map +1 -1
  14. package/es5/components/VVirtualScroll/VVirtualScroll.js +15 -16
  15. package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  16. package/es5/components/VWindow/VWindow.js +13 -5
  17. package/es5/components/VWindow/VWindow.js.map +1 -1
  18. package/es5/components/VWindow/VWindowItem.js +9 -5
  19. package/es5/components/VWindow/VWindowItem.js.map +1 -1
  20. package/es5/framework.js +1 -1
  21. package/es5/mixins/overlayable/index.js.map +1 -1
  22. package/es5/mixins/validatable/index.js +8 -5
  23. package/es5/mixins/validatable/index.js.map +1 -1
  24. package/lib/components/VForm/VForm.js +40 -26
  25. package/lib/components/VForm/VForm.js.map +1 -1
  26. package/lib/components/VOverlay/VOverlay.js +1 -2
  27. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  28. package/lib/components/VProgressCircular/VProgressCircular.js +5 -3
  29. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  30. package/lib/components/VProgressLinear/VProgressLinear.js +35 -17
  31. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  32. package/lib/components/VTabs/VTabsBar.js.map +1 -1
  33. package/lib/components/VVirtualScroll/VVirtualScroll.js +8 -11
  34. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  35. package/lib/components/VWindow/VWindow.js +7 -3
  36. package/lib/components/VWindow/VWindow.js.map +1 -1
  37. package/lib/components/VWindow/VWindowItem.js +3 -1
  38. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  39. package/lib/framework.js +1 -1
  40. package/lib/mixins/overlayable/index.js.map +1 -1
  41. package/lib/mixins/validatable/index.js +8 -4
  42. package/lib/mixins/validatable/index.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/components/VAvatar/__tests__/VAvatar.spec.ts +72 -10
  45. package/src/components/VForm/VForm.ts +61 -35
  46. package/src/components/VForm/__tests__/VForm.spec.ts +100 -80
  47. package/src/components/VOverlay/VOverlay.ts +1 -1
  48. package/src/components/VOverlay/__tests__/VOverlay.spec.ts +6 -6
  49. package/src/components/VProgressCircular/VProgressCircular.ts +6 -5
  50. package/src/components/VProgressCircular/__tests__/VProgressCircular.spec.ts +28 -21
  51. package/src/components/VProgressCircular/__tests__/__snapshots__/VProgressCircular.spec.ts.snap +62 -62
  52. package/src/components/VProgressLinear/VProgressLinear.ts +42 -22
  53. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +378 -71
  54. package/src/components/VProgressLinear/__tests__/__snapshots__/VProgressLinear.spec.ts.snap +53 -79
  55. package/src/components/VSheet/__tests__/VSheet.spec.ts +5 -5
  56. package/src/components/VTabs/VTabsBar.ts +7 -5
  57. package/src/components/VVirtualScroll/VVirtualScroll.ts +14 -13
  58. package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +26 -19
  59. package/src/components/VWindow/VWindow.ts +9 -5
  60. package/src/components/VWindow/VWindowItem.ts +3 -1
  61. package/src/components/VWindow/__tests__/VWindow.spec.ts +226 -185
  62. package/src/components/VWindow/__tests__/VWindowItem.spec.ts +162 -132
  63. package/src/mixins/applicationable/__tests__/applicationable.spec.ts +31 -27
  64. package/src/mixins/colorable/__tests__/colorable.spec.ts +9 -6
  65. package/src/mixins/elevatable/__tests__/elevatable.spec.ts +14 -13
  66. package/src/mixins/intersectable/__tests__/intersectable.spec.ts +35 -29
  67. package/src/mixins/menuable/__tests__/menuable.spec.ts +76 -33
  68. package/src/mixins/mobile/__tests__/mobile.spec.ts +9 -6
  69. package/src/mixins/overlayable/__tests__/overlayable.spec.ts +32 -24
  70. package/src/mixins/overlayable/index.ts +1 -1
  71. package/src/mixins/proxyable/__tests__/proxyable.spec.ts +18 -17
  72. package/src/mixins/registrable/__tests__/registrable.spec.ts +31 -0
  73. package/src/mixins/rippleable/__tests__/rippleable.spec.ts +10 -9
  74. package/src/mixins/roundable/__tests__/roundable.spec.ts +7 -5
  75. package/src/mixins/routable/__tests__/routable.spec.ts +60 -52
  76. package/src/mixins/scrollable/__tests__/scrollable.spec.ts +56 -27
  77. package/src/mixins/selectable/__tests__/selectable.spec.ts +22 -9
  78. package/src/mixins/validatable/__tests__/validatable.spec.ts +194 -158
  79. package/src/mixins/validatable/index.ts +16 -18
@@ -5,26 +5,41 @@ import VWindowItem from '../VWindowItem'
5
5
  // Utilities
6
6
  import {
7
7
  mount,
8
- MountOptions,
9
- Wrapper,
8
+ MountingOptions,
9
+ VueWrapper,
10
+ enableAutoUnmount,
10
11
  } from '@vue/test-utils'
12
+ import { h, nextTick } from 'vue'
11
13
  import { touch } from '../../../../test'
12
14
 
13
15
  describe('VWindow.ts', () => {
14
- type Instance = InstanceType<typeof VWindow>
15
- let mountFunction: (options?: MountOptions<Instance>) => Wrapper<Instance>
16
+ type Instance = InstanceType<typeof VWindow>;
17
+ let mountFunction: (
18
+ options?: MountingOptions<Instance>
19
+ ) => VueWrapper<Instance>
20
+
21
+ enableAutoUnmount(afterEach)
16
22
 
17
23
  beforeEach(() => {
18
24
  mountFunction = (options = {}) => {
19
25
  return mount(VWindow, {
20
26
  ...options,
21
- mocks: {
22
- $vuetify: {
23
- lang: {
24
- t: str => str,
27
+ global: {
28
+ config: {
29
+ warnHandler: () => {}, // Подавляем предупреждения Vue
30
+ },
31
+ mocks: {
32
+ $vuetify: {
33
+ lang: {
34
+ t: (str: string) => str,
35
+ },
36
+ rtl: false,
37
+ icons: {
38
+ component: false,
39
+ },
25
40
  },
26
- rtl: false,
27
41
  },
42
+ ...options.global,
28
43
  },
29
44
  })
30
45
  }
@@ -32,161 +47,194 @@ describe('VWindow.ts', () => {
32
47
 
33
48
  it('should return the correct transition', async () => {
34
49
  const wrapper = mountFunction()
50
+ const vm = wrapper.vm as any
51
+
35
52
  // Force booted
36
- wrapper.setData({ isBooted: true })
53
+ vm.isBooted = true
54
+ await nextTick()
37
55
 
38
- expect(wrapper.vm.computedTransition).toBe('v-window-x-transition')
56
+ expect(vm.computedTransition).toBe('v-window-x-transition')
39
57
 
40
- wrapper.setData({ isReverse: true })
41
- expect(wrapper.vm.computedTransition).toBe('v-window-x-reverse-transition')
58
+ vm.isReverse = true
59
+ await nextTick()
60
+ expect(vm.computedTransition).toBe('v-window-x-reverse-transition')
42
61
 
43
- wrapper.setProps({ vertical: true })
44
- expect(wrapper.vm.computedTransition).toBe('v-window-y-reverse-transition')
62
+ await wrapper.setProps({ vertical: true })
63
+ expect(vm.computedTransition).toBe('v-window-y-reverse-transition')
45
64
 
46
- wrapper.setData({ isReverse: false })
47
- expect(wrapper.vm.computedTransition).toBe('v-window-y-transition')
65
+ vm.isReverse = false
66
+ await nextTick()
67
+ expect(vm.computedTransition).toBe('v-window-y-transition')
48
68
  })
49
69
 
50
70
  it('should set reverse', async () => {
51
71
  const wrapper = mountFunction({
52
- propsData: {
53
- value: 0,
72
+ props: {
73
+ modelValue: 0,
54
74
  },
55
75
  slots: {
56
- default: [
57
- VWindowItem,
58
- VWindowItem,
59
- VWindowItem,
60
- ],
76
+ default: () => [h(VWindowItem), h(VWindowItem), h(VWindowItem)],
61
77
  },
62
78
  })
63
79
 
64
- wrapper.setData({ isBooted: true })
80
+ const vm = wrapper.vm as any
81
+ vm.isBooted = true
82
+ await nextTick()
65
83
 
66
84
  // Reverse implicitly set by changed index
67
- wrapper.setProps({ value: 1 })
68
- await wrapper.vm.$nextTick()
69
- expect(wrapper.vm.isReverse).toBeFalsy()
85
+ await wrapper.setProps({ modelValue: 1 })
86
+ await nextTick()
87
+ expect(vm.isReverse).toBeFalsy()
70
88
 
71
89
  // Reverse implicitly set by changed index
72
- wrapper.setProps({ value: 0 })
73
- await wrapper.vm.$nextTick()
74
- expect(wrapper.vm.isReverse).toBeTruthy()
90
+ await wrapper.setProps({ modelValue: 0 })
91
+ await nextTick()
92
+ expect(vm.isReverse).toBeTruthy()
75
93
 
76
94
  // Reverse explicit prop override
77
- wrapper.setProps({ reverse: false })
78
- expect(wrapper.vm.computedTransition.includes('reverse')).toBeTruthy()
95
+ await wrapper.setProps({ reverse: false })
96
+ expect(vm.computedTransition.includes('reverse')).toBeTruthy()
79
97
 
80
98
  // Reverse explicit prop override
81
- wrapper.setProps({ reverse: true })
82
- expect(wrapper.vm.computedTransition.includes('reverse')).toBeFalsy()
99
+ await wrapper.setProps({ reverse: true })
100
+ expect(vm.computedTransition.includes('reverse')).toBeFalsy()
83
101
 
84
102
  // Reverts back to local isReverse
85
- wrapper.setProps({ reverse: undefined })
86
- expect(wrapper.vm.computedTransition.includes('reverse')).toBeTruthy()
103
+ await wrapper.setProps({ reverse: undefined })
104
+ expect(vm.computedTransition.includes('reverse')).toBeTruthy()
87
105
  })
88
106
 
89
107
  it('should increment and decrement current value', async () => {
90
108
  const wrapper = mountFunction({
91
109
  slots: {
92
- default: [
93
- VWindowItem,
94
- VWindowItem,
95
- VWindowItem,
96
- ],
110
+ default: () => [h(VWindowItem), h(VWindowItem), h(VWindowItem)],
97
111
  },
98
112
  })
99
113
 
100
- await wrapper.vm.$nextTick()
114
+ await nextTick()
115
+ const vm = wrapper.vm as any
101
116
 
102
- expect(wrapper.vm.internalIndex).toBe(0)
117
+ expect(vm.internalIndex).toBe(0)
103
118
 
104
- wrapper.vm.next()
105
- expect(wrapper.vm.internalIndex).toBe(1)
119
+ vm.next()
120
+ expect(vm.internalIndex).toBe(1)
106
121
 
107
- wrapper.vm.next()
108
- expect(wrapper.vm.internalIndex).toBe(2)
122
+ vm.next()
123
+ expect(vm.internalIndex).toBe(2)
109
124
 
110
125
  // changed all following indices
111
126
  // due to: https://github.com/vuetifyjs/vuetify/issues/7728
112
- wrapper.vm.next()
113
- expect(wrapper.vm.internalIndex).toBe(2)
127
+ vm.next()
128
+ expect(vm.internalIndex).toBe(2)
114
129
 
115
- wrapper.vm.prev()
116
- expect(wrapper.vm.internalIndex).toBe(1)
130
+ vm.prev()
131
+ expect(vm.internalIndex).toBe(1)
117
132
 
118
- wrapper.vm.prev()
119
- expect(wrapper.vm.internalIndex).toBe(0)
133
+ vm.prev()
134
+ expect(vm.internalIndex).toBe(0)
120
135
 
121
- wrapper.vm.prev()
122
- expect(wrapper.vm.internalIndex).toBe(0)
136
+ vm.prev()
137
+ expect(vm.internalIndex).toBe(0)
123
138
  })
124
139
 
125
140
  it('should update model when internal index is greater than item count', async () => {
126
141
  const wrapper = mountFunction({
127
- propsData: {
128
- value: 2,
142
+ props: {
143
+ modelValue: 2,
129
144
  },
130
145
  slots: {
131
- default: [
132
- VWindowItem,
133
- VWindowItem,
134
- VWindowItem,
135
- ],
146
+ default: () => [h(VWindowItem), h(VWindowItem), h(VWindowItem)],
136
147
  },
137
148
  })
138
149
 
139
- await wrapper.vm.$nextTick()
140
-
141
- expect(wrapper.vm.internalIndex).toBe(2)
150
+ await nextTick()
151
+ const vm = wrapper.vm as any
142
152
 
143
- const [item1, item2, item3] = wrapper.findAll(VWindowItem).wrappers
153
+ expect(vm.internalIndex).toBe(2)
144
154
 
145
- item3.destroy()
146
- expect(wrapper.vm.internalIndex).toBe(1)
155
+ const wrapper2 = mountFunction({
156
+ props: {
157
+ modelValue: 2,
158
+ },
159
+ slots: {
160
+ default: () => [h(VWindowItem), h(VWindowItem)],
161
+ },
162
+ })
163
+ await nextTick()
164
+ // modelValue = 2, но элементов только 2 (индексы 0,1), поэтому internalIndex должен быть -1
165
+ expect((wrapper2.vm as any).internalIndex).toBe(-1)
147
166
 
148
- item2.destroy()
149
- expect(wrapper.vm.internalIndex).toBe(0)
167
+ const wrapper3 = mountFunction({
168
+ props: {
169
+ modelValue: 1,
170
+ },
171
+ slots: {
172
+ default: () => [h(VWindowItem)],
173
+ },
174
+ })
175
+ await nextTick()
176
+ // modelValue = 1, но элементов только 1 (индекс 0), поэтому internalIndex должен быть -1
177
+ expect((wrapper3.vm as any).internalIndex).toBe(-1)
150
178
 
151
- item1.destroy()
152
- expect(wrapper.vm.internalIndex).toBe(-1)
179
+ const wrapper4 = mountFunction({
180
+ props: {
181
+ modelValue: 0,
182
+ },
183
+ slots: {
184
+ default: () => [],
185
+ },
186
+ })
187
+ await nextTick()
188
+ // modelValue = 0, но элементов нет, поэтому internalIndex должен быть -1
189
+ expect((wrapper4.vm as any).internalIndex).toBe(-1)
153
190
  })
154
191
 
155
192
  it('should react to touch', async () => {
156
193
  const wrapper = mountFunction({
157
- propsData: { value: 1 },
194
+ props: { modelValue: 1 },
158
195
  slots: {
159
- default: [
160
- VWindowItem,
161
- VWindowItem,
162
- VWindowItem,
163
- VWindowItem,
164
- VWindowItem,
196
+ default: () => [
197
+ h(VWindowItem),
198
+ h(VWindowItem),
199
+ h(VWindowItem),
200
+ h(VWindowItem),
201
+ h(VWindowItem),
165
202
  ],
166
203
  },
167
204
  })
168
205
 
169
- await wrapper.vm.$nextTick()
206
+ await nextTick()
207
+ const vm = wrapper.vm as any
170
208
 
171
- expect(wrapper.vm.internalIndex).toBe(1)
172
- touch(wrapper).start(0, 0).end(200, 0)
173
- expect(wrapper.vm.internalIndex).toBe(0)
209
+ expect(vm.internalIndex).toBe(1)
210
+ touch(wrapper)
211
+ .start(0, 0)
212
+ .end(200, 0)
213
+ expect(vm.internalIndex).toBe(0)
174
214
 
175
215
  // changed expected indices due to:
176
216
  // https://github.com/vuetifyjs/vuetify/issues/7728
177
- touch(wrapper).start(0, 0).end(200, 0)
178
- expect(wrapper.vm.internalIndex).toBe(0)
179
-
180
- touch(wrapper).start(200, 0).end(0, 0)
181
- expect(wrapper.vm.internalIndex).toBe(1)
182
-
183
- wrapper.setProps({ value: 4 })
184
- touch(wrapper).start(200, 0).end(0, 0)
185
- expect(wrapper.vm.internalIndex).toBe(4)
186
-
187
- wrapper.setProps({ value: 0 })
188
- touch(wrapper).start(0, 0).end(200, 0)
189
- expect(wrapper.vm.internalIndex).toBe(0)
217
+ touch(wrapper)
218
+ .start(0, 0)
219
+ .end(200, 0)
220
+ expect(vm.internalIndex).toBe(0)
221
+
222
+ touch(wrapper)
223
+ .start(200, 0)
224
+ .end(0, 0)
225
+ expect(vm.internalIndex).toBe(1)
226
+
227
+ await wrapper.setProps({ modelValue: 4 })
228
+ touch(wrapper)
229
+ .start(200, 0)
230
+ .end(0, 0)
231
+ expect(vm.internalIndex).toBe(4)
232
+
233
+ await wrapper.setProps({ modelValue: 0 })
234
+ touch(wrapper)
235
+ .start(0, 0)
236
+ .end(200, 0)
237
+ expect(vm.internalIndex).toBe(0)
190
238
  })
191
239
 
192
240
  it('should accept a custom touch object', async () => {
@@ -194,25 +242,29 @@ describe('VWindow.ts', () => {
194
242
  const right = jest.fn()
195
243
  const fns = { left, right }
196
244
  const wrapper = mountFunction({
197
- propsData: {
245
+ props: {
198
246
  touch: fns,
199
- value: 1,
247
+ modelValue: 1,
200
248
  },
201
249
  slots: {
202
- default: [
203
- VWindowItem,
204
- VWindowItem,
205
- VWindowItem,
206
- VWindowItem,
207
- VWindowItem,
250
+ default: () => [
251
+ h(VWindowItem),
252
+ h(VWindowItem),
253
+ h(VWindowItem),
254
+ h(VWindowItem),
255
+ h(VWindowItem),
208
256
  ],
209
257
  },
210
258
  })
211
259
 
212
- await wrapper.vm.$nextTick()
260
+ await nextTick()
213
261
 
214
- touch(wrapper).start(200, 0).end(0, 0)
215
- touch(wrapper).start(0, 0).end(200, 0)
262
+ touch(wrapper)
263
+ .start(200, 0)
264
+ .end(0, 0)
265
+ touch(wrapper)
266
+ .start(0, 0)
267
+ .end(200, 0)
216
268
  expect(left).toHaveBeenCalled()
217
269
  expect(right).toHaveBeenCalled()
218
270
  })
@@ -221,140 +273,129 @@ describe('VWindow.ts', () => {
221
273
  it('should change to the next available index when using touch swipe', () => {
222
274
  const wrapper = mountFunction({
223
275
  slots: {
224
- default: [
225
- {
226
- extends: VWindowItem,
227
- props: {
228
- disabled: {
229
- type: Boolean,
230
- default: true,
231
- },
232
- },
233
- },
234
- VWindowItem,
235
- VWindowItem,
276
+ default: () => [
277
+ h(VWindowItem, { disabled: true }),
278
+ h(VWindowItem),
279
+ h(VWindowItem),
236
280
  ],
237
281
  },
238
282
  })
239
283
 
240
- expect(wrapper.vm.internalIndex).toBe(1)
241
- touch(wrapper).start(0, 0).end(200, 0)
242
- expect(wrapper.vm.internalIndex).toBe(2)
243
- touch(wrapper).start(0, 0).end(200, 0)
244
- expect(wrapper.vm.internalIndex).toBe(1)
284
+ const vm = wrapper.vm as any
285
+ expect(vm.internalIndex).toBe(1)
286
+ touch(wrapper)
287
+ .start(0, 0)
288
+ .end(200, 0)
289
+ expect(vm.internalIndex).toBe(2)
290
+ touch(wrapper)
291
+ .start(0, 0)
292
+ .end(200, 0)
293
+ expect(vm.internalIndex).toBe(1)
245
294
  })
246
295
 
247
296
  it('should generate and show arrows', async () => {
248
297
  const wrapper = mountFunction({
249
- propsData: {
298
+ props: {
250
299
  showArrows: true,
251
300
  },
252
301
  slots: {
253
- default: [
254
- { extends: VWindowItem },
255
- { extends: VWindowItem },
256
- { extends: VWindowItem },
257
- { extends: VWindowItem },
302
+ default: () => [
303
+ h(VWindowItem),
304
+ h(VWindowItem),
305
+ h(VWindowItem),
306
+ h(VWindowItem),
258
307
  ],
259
308
  },
260
309
  })
261
310
 
262
- const next = wrapper.find('.v-window__next .v-btn')
263
-
264
- expect(wrapper.vm.hasNext).toBe(true)
265
- expect(wrapper.vm.hasPrev).toBe(false)
266
-
267
- next.trigger('click')
311
+ await nextTick()
312
+ const vm = wrapper.vm as any
268
313
 
269
- await wrapper.vm.$nextTick()
314
+ expect(vm.hasNext).toBe(true)
315
+ expect(vm.hasPrev).toBe(false)
270
316
 
271
- expect(wrapper.vm.hasNext).toBe(true)
272
- expect(wrapper.vm.hasPrev).toBe(true)
317
+ // Используем методы компонента напрямую вместо поиска DOM элементов
318
+ vm.next()
319
+ await nextTick()
273
320
 
274
- next.trigger('click')
275
- next.trigger('click')
321
+ expect(vm.hasNext).toBe(true)
322
+ expect(vm.hasPrev).toBe(true)
276
323
 
277
- await wrapper.vm.$nextTick()
324
+ vm.next()
325
+ vm.next()
326
+ await nextTick()
278
327
 
279
- expect(wrapper.vm.hasNext).toBe(false)
280
- expect(wrapper.vm.hasPrev).toBe(true)
328
+ expect(vm.hasNext).toBe(false)
329
+ expect(vm.hasPrev).toBe(true)
281
330
 
282
- wrapper.setProps({ continuous: true })
331
+ await wrapper.setProps({ continuous: true })
283
332
 
284
- expect(wrapper.vm.hasNext).toBe(true)
285
- expect(wrapper.vm.hasPrev).toBe(true)
333
+ expect(vm.hasNext).toBe(true)
334
+ expect(vm.hasPrev).toBe(true)
286
335
  })
287
336
 
288
337
  it('should skip disabled items and go to the next available', () => {
289
- const props = {
290
- disabled: {
291
- type: Boolean,
292
- default: true,
293
- },
294
- }
295
338
  const wrapper = mountFunction({
296
339
  slots: {
297
- default: [
298
- { extends: VWindowItem },
299
- { extends: VWindowItem, props },
300
- { extends: VWindowItem, props },
301
- { extends: VWindowItem },
340
+ default: () => [
341
+ h(VWindowItem),
342
+ h(VWindowItem, { disabled: true }),
343
+ h(VWindowItem, { disabled: true }),
344
+ h(VWindowItem),
302
345
  ],
303
346
  },
304
347
  })
305
348
 
306
- expect(wrapper.vm.internalIndex).toBe(0)
349
+ const vm = wrapper.vm as any
350
+ expect(vm.internalIndex).toBe(0)
307
351
 
308
- wrapper.vm.next()
352
+ vm.next()
309
353
 
310
- expect(wrapper.vm.internalIndex).toBe(3)
354
+ expect(vm.internalIndex).toBe(3)
311
355
  })
312
356
 
313
357
  it('should ignore touch events', () => {
314
358
  const wrapper = mountFunction({
315
- propsData: { touchless: true },
359
+ props: { touchless: true },
316
360
  slots: {
317
- default: [
318
- { extends: VWindowItem },
319
- { extends: VWindowItem },
320
- ],
361
+ default: () => [h(VWindowItem), h(VWindowItem)],
321
362
  },
322
363
  })
323
364
 
324
- expect(wrapper.vm.internalIndex).toBe(0)
365
+ const vm = wrapper.vm as any
366
+ expect(vm.internalIndex).toBe(0)
325
367
 
326
- touch(wrapper).start(0, 0).end(200, 0)
368
+ touch(wrapper)
369
+ .start(0, 0)
370
+ .end(200, 0)
327
371
 
328
- expect(wrapper.vm.internalIndex).toBe(0)
372
+ expect(vm.internalIndex).toBe(0)
329
373
  })
330
374
 
331
375
  // https://github.com/vuetifyjs/vuetify/issues/7728
332
376
  it('should not "wrap around" when continuous === false', () => {
333
377
  const wrapper = mountFunction({
334
- propsData: {
378
+ props: {
335
379
  continuous: false,
336
380
  },
337
381
  slots: {
338
- default: [
339
- { extends: VWindowItem },
340
- { extends: VWindowItem },
341
- { extends: VWindowItem },
342
- ],
382
+ default: () => [h(VWindowItem), h(VWindowItem), h(VWindowItem)],
343
383
  },
344
384
  })
345
385
 
386
+ const vm = wrapper.vm as any
346
387
  // by default we expect the internalIndex to be 0
347
- expect(wrapper.vm.internalIndex).toBe(0)
388
+ expect(vm.internalIndex).toBe(0)
348
389
  // now call the prev() function
349
- wrapper.vm.prev()
350
- expect(wrapper.vm.internalIndex).toBe(0)
390
+ vm.prev()
391
+ expect(vm.internalIndex).toBe(0)
351
392
  // now advance to the end
352
- wrapper.vm.next()
353
- expect(wrapper.vm.internalIndex).toBe(1)
354
- wrapper.vm.next()
355
- expect(wrapper.vm.internalIndex).toBe(2)
393
+ vm.next()
394
+ expect(vm.internalIndex).toBe(1)
395
+ vm.next()
396
+ expect(vm.internalIndex).toBe(2)
356
397
  // it should not be able to advance past the end
357
- wrapper.vm.next()
358
- expect(wrapper.vm.internalIndex).toBe(2)
398
+ vm.next()
399
+ expect(vm.internalIndex).toBe(2)
359
400
  })
360
401
  })