@gitlab/ui 114.0.1 → 114.1.1

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 (136) hide show
  1. package/package.json +9 -28
  2. package/CHANGELOG.md +0 -13132
  3. package/src/vendor/bootstrap/LICENSE +0 -11
  4. package/src/vendor/bootstrap-vue/LICENSE +0 -11
  5. package/src/vendor/bootstrap-vue/package.json +0 -144
  6. package/src/vendor/bootstrap-vue/src/components/button/MODIFICATIONS.md +0 -16
  7. package/src/vendor/bootstrap-vue/src/components/button/README.md +0 -240
  8. package/src/vendor/bootstrap-vue/src/components/button/button-close.spec.js +0 -210
  9. package/src/vendor/bootstrap-vue/src/components/button/button.spec.js +0 -349
  10. package/src/vendor/bootstrap-vue/src/components/button/package.json +0 -105
  11. package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +0 -730
  12. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.spec.js +0 -58
  13. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.spec.js +0 -110
  14. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.spec.js +0 -94
  15. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.spec.js +0 -73
  16. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.spec.js +0 -117
  17. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.spec.js +0 -147
  18. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.spec.js +0 -59
  19. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.spec.js +0 -1121
  20. package/src/vendor/bootstrap-vue/src/components/dropdown/package.json +0 -368
  21. package/src/vendor/bootstrap-vue/src/components/form/README.md +0 -365
  22. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.spec.js +0 -170
  23. package/src/vendor/bootstrap-vue/src/components/form/form-text.spec.js +0 -93
  24. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.spec.js +0 -157
  25. package/src/vendor/bootstrap-vue/src/components/form/form.spec.js +0 -97
  26. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -112
  27. package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +0 -691
  28. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.spec.js +0 -525
  29. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.spec.js +0 -922
  30. package/src/vendor/bootstrap-vue/src/components/form-checkbox/package.json +0 -172
  31. package/src/vendor/bootstrap-vue/src/components/form-group/README.md +0 -339
  32. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.spec.js +0 -477
  33. package/src/vendor/bootstrap-vue/src/components/form-group/package.json +0 -183
  34. package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +0 -437
  35. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.spec.js +0 -357
  36. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.spec.js +0 -587
  37. package/src/vendor/bootstrap-vue/src/components/form-radio/package.json +0 -162
  38. package/src/vendor/bootstrap-vue/src/components/form-select/README.md +0 -504
  39. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.spec.js +0 -138
  40. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.spec.js +0 -75
  41. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.spec.js +0 -723
  42. package/src/vendor/bootstrap-vue/src/components/form-select/package.json +0 -132
  43. package/src/vendor/bootstrap-vue/src/components/form-textarea/README.md +0 -453
  44. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.spec.js +0 -1000
  45. package/src/vendor/bootstrap-vue/src/components/form-textarea/package.json +0 -122
  46. package/src/vendor/bootstrap-vue/src/components/layout/README.md +0 -791
  47. package/src/vendor/bootstrap-vue/src/components/layout/col.spec.js +0 -192
  48. package/src/vendor/bootstrap-vue/src/components/layout/form-row.spec.js +0 -45
  49. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -99
  50. package/src/vendor/bootstrap-vue/src/components/link/README.md +0 -76
  51. package/src/vendor/bootstrap-vue/src/components/link/link.spec.js +0 -434
  52. package/src/vendor/bootstrap-vue/src/components/link/package.json +0 -57
  53. package/src/vendor/bootstrap-vue/src/components/modal/MODIFICATIONS.md +0 -30
  54. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1067
  55. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.spec.js +0 -82
  56. package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +0 -1418
  57. package/src/vendor/bootstrap-vue/src/components/modal/package.json +0 -544
  58. package/src/vendor/bootstrap-vue/src/components/nav/README.md +0 -362
  59. package/src/vendor/bootstrap-vue/src/components/nav/nav-item.spec.js +0 -127
  60. package/src/vendor/bootstrap-vue/src/components/nav/nav.spec.js +0 -177
  61. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -73
  62. package/src/vendor/bootstrap-vue/src/components/popover/README.md +0 -919
  63. package/src/vendor/bootstrap-vue/src/components/popover/package.json +0 -261
  64. package/src/vendor/bootstrap-vue/src/components/popover/popover.spec.js +0 -198
  65. package/src/vendor/bootstrap-vue/src/components/table/README.md +0 -3157
  66. package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.spec.js +0 -112
  67. package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.spec.js +0 -93
  68. package/src/vendor/bootstrap-vue/src/components/table/package.json +0 -1763
  69. package/src/vendor/bootstrap-vue/src/components/table/table-busy.spec.js +0 -150
  70. package/src/vendor/bootstrap-vue/src/components/table/table-caption.spec.js +0 -176
  71. package/src/vendor/bootstrap-vue/src/components/table/table-colgroup.spec.js +0 -81
  72. package/src/vendor/bootstrap-vue/src/components/table/table-filtering.spec.js +0 -409
  73. package/src/vendor/bootstrap-vue/src/components/table/table-item-formatter.spec.js +0 -56
  74. package/src/vendor/bootstrap-vue/src/components/table/table-lite.spec.js +0 -682
  75. package/src/vendor/bootstrap-vue/src/components/table/table-pagination.spec.js +0 -133
  76. package/src/vendor/bootstrap-vue/src/components/table/table-primarykey.spec.js +0 -83
  77. package/src/vendor/bootstrap-vue/src/components/table/table-provider.spec.js +0 -411
  78. package/src/vendor/bootstrap-vue/src/components/table/table-row-details.spec.js +0 -459
  79. package/src/vendor/bootstrap-vue/src/components/table/table-selectable.spec.js +0 -1182
  80. package/src/vendor/bootstrap-vue/src/components/table/table-simple.spec.js +0 -206
  81. package/src/vendor/bootstrap-vue/src/components/table/table-sorting.spec.js +0 -858
  82. package/src/vendor/bootstrap-vue/src/components/table/table-sticky-column.spec.js +0 -377
  83. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-bottom-row.spec.js +0 -94
  84. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-row-events.spec.js +0 -529
  85. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-top-row.spec.js +0 -88
  86. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-transition.spec.js +0 -83
  87. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-custom.spec.js +0 -91
  88. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-events.spec.js +0 -137
  89. package/src/vendor/bootstrap-vue/src/components/table/table-thead-events.spec.js +0 -155
  90. package/src/vendor/bootstrap-vue/src/components/table/table-thead-top.spec.js +0 -96
  91. package/src/vendor/bootstrap-vue/src/components/table/table.spec.js +0 -692
  92. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +0 -433
  93. package/src/vendor/bootstrap-vue/src/components/tabs/package.json +0 -205
  94. package/src/vendor/bootstrap-vue/src/components/tabs/tab.spec.js +0 -330
  95. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.spec.js +0 -778
  96. package/src/vendor/bootstrap-vue/src/components/toast/README.md +0 -655
  97. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.spec.js +0 -117
  98. package/src/vendor/bootstrap-vue/src/components/toast/package.json +0 -184
  99. package/src/vendor/bootstrap-vue/src/components/toast/toast.spec.js +0 -294
  100. package/src/vendor/bootstrap-vue/src/components/toast/toaster.spec.js +0 -77
  101. package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +0 -559
  102. package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +0 -258
  103. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.spec.js +0 -1240
  104. package/src/vendor/bootstrap-vue/src/components/transition/package.json +0 -5
  105. package/src/vendor/bootstrap-vue/src/components/transporter/package.json +0 -5
  106. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.spec.js +0 -85
  107. package/src/vendor/bootstrap-vue/src/directives/modal/modal.spec.js +0 -191
  108. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +0 -521
  109. package/src/vendor/bootstrap-vue/src/directives/tooltip/package.json +0 -131
  110. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.spec.js +0 -190
  111. package/src/vendor/bootstrap-vue/src/directives/visible/README.md +0 -244
  112. package/src/vendor/bootstrap-vue/src/directives/visible/package.json +0 -24
  113. package/src/vendor/bootstrap-vue/src/mixins/attrs.spec.js +0 -194
  114. package/src/vendor/bootstrap-vue/src/mixins/click-out.spec.js +0 -52
  115. package/src/vendor/bootstrap-vue/src/mixins/focus-in.spec.js +0 -53
  116. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.spec.js +0 -117
  117. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.spec.js +0 -77
  118. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.spec.js +0 -115
  119. package/src/vendor/bootstrap-vue/src/mixins/listeners.spec.js +0 -245
  120. package/src/vendor/bootstrap-vue/src/utils/bv-event.class.spec.js +0 -66
  121. package/src/vendor/bootstrap-vue/src/utils/clone-deep.spec.js +0 -70
  122. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +0 -169
  123. package/src/vendor/bootstrap-vue/src/utils/css-escape.spec.js +0 -82
  124. package/src/vendor/bootstrap-vue/src/utils/dom.spec.js +0 -291
  125. package/src/vendor/bootstrap-vue/src/utils/events.spec.js +0 -41
  126. package/src/vendor/bootstrap-vue/src/utils/get.spec.js +0 -109
  127. package/src/vendor/bootstrap-vue/src/utils/inspect.spec.js +0 -251
  128. package/src/vendor/bootstrap-vue/src/utils/loose-equal.spec.js +0 -203
  129. package/src/vendor/bootstrap-vue/src/utils/normalize-slot.spec.js +0 -63
  130. package/src/vendor/bootstrap-vue/src/utils/number.spec.js +0 -72
  131. package/src/vendor/bootstrap-vue/src/utils/object.spec.js +0 -61
  132. package/src/vendor/bootstrap-vue/src/utils/props.spec.js +0 -112
  133. package/src/vendor/bootstrap-vue/src/utils/router.spec.js +0 -248
  134. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +0 -65
  135. package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.spec.js +0 -47
  136. package/src/vendor/bootstrap-vue/src/utils/warn.spec.js +0 -54
@@ -1,349 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { BButton } from './button'
3
-
4
- describe('button', () => {
5
- it('has default structure and classes', async () => {
6
- const wrapper = mount(BButton)
7
-
8
- expect(wrapper.element.tagName).toBe('BUTTON')
9
- expect(wrapper.attributes('type')).toBeDefined()
10
- expect(wrapper.attributes('type')).toBe('button')
11
- expect(wrapper.classes()).toContain('btn')
12
- expect(wrapper.classes()).toContain('btn-secondary')
13
- expect(wrapper.classes().length).toBe(2)
14
- expect(wrapper.attributes('href')).toBeUndefined()
15
- expect(wrapper.attributes('role')).toBeUndefined()
16
- expect(wrapper.attributes('disabled')).toBeUndefined()
17
- expect(wrapper.attributes('aria-disabled')).toBeUndefined()
18
- expect(wrapper.attributes('aria-pressed')).toBeUndefined()
19
- expect(wrapper.attributes('autocomplete')).toBeUndefined()
20
- expect(wrapper.attributes('tabindex')).toBeUndefined()
21
-
22
- wrapper.destroy()
23
- })
24
-
25
- it('renders a link when href provided', async () => {
26
- const wrapper = mount(BButton, {
27
- propsData: {
28
- href: '/foo/bar'
29
- }
30
- })
31
-
32
- expect(wrapper.element.tagName).toBe('A')
33
- expect(wrapper.attributes('href')).toBeDefined()
34
- expect(wrapper.attributes('href')).toBe('/foo/bar')
35
- expect(wrapper.attributes('type')).toBeUndefined()
36
- expect(wrapper.classes()).toContain('btn')
37
- expect(wrapper.classes()).toContain('btn-secondary')
38
- expect(wrapper.classes().length).toBe(2)
39
- expect(wrapper.attributes('role')).toBeUndefined()
40
- expect(wrapper.attributes('disabled')).toBeUndefined()
41
- expect(wrapper.attributes('aria-disabled')).toBeUndefined()
42
- expect(wrapper.attributes('aria-pressed')).toBeUndefined()
43
- expect(wrapper.attributes('autocomplete')).toBeUndefined()
44
- expect(wrapper.attributes('tabindex')).toBeUndefined()
45
-
46
- wrapper.destroy()
47
- })
48
-
49
- it('renders default slot content', async () => {
50
- const wrapper = mount(BButton, {
51
- slots: {
52
- default: '<span>foobar</span>'
53
- }
54
- })
55
-
56
- expect(wrapper.element.tagName).toBe('BUTTON')
57
- expect(wrapper.attributes('type')).toBeDefined()
58
- expect(wrapper.attributes('type')).toBe('button')
59
- expect(wrapper.classes()).toContain('btn')
60
- expect(wrapper.classes()).toContain('btn-secondary')
61
- expect(wrapper.classes().length).toBe(2)
62
- expect(wrapper.find('span').exists()).toBe(true)
63
- expect(wrapper.text()).toBe('foobar')
64
-
65
- wrapper.destroy()
66
- })
67
-
68
- it('applies variant class', async () => {
69
- const wrapper = mount(BButton, {
70
- propsData: {
71
- variant: 'danger'
72
- }
73
- })
74
-
75
- expect(wrapper.element.tagName).toBe('BUTTON')
76
- expect(wrapper.attributes('type')).toBeDefined()
77
- expect(wrapper.attributes('type')).toBe('button')
78
- expect(wrapper.classes()).toContain('btn')
79
- expect(wrapper.classes()).toContain('btn-danger')
80
- expect(wrapper.classes().length).toBe(2)
81
-
82
- wrapper.destroy()
83
- })
84
-
85
- it('applies block class', async () => {
86
- const wrapper = mount(BButton, {
87
- propsData: {
88
- block: true
89
- }
90
- })
91
-
92
- expect(wrapper.element.tagName).toBe('BUTTON')
93
- expect(wrapper.attributes('type')).toBeDefined()
94
- expect(wrapper.attributes('type')).toBe('button')
95
- expect(wrapper.classes()).toContain('btn')
96
- expect(wrapper.classes()).toContain('btn-secondary')
97
- expect(wrapper.classes()).toContain('btn-block')
98
- expect(wrapper.classes().length).toBe(3)
99
-
100
- wrapper.destroy()
101
- })
102
-
103
- it('renders custom root element', async () => {
104
- const wrapper = mount(BButton, {
105
- propsData: {
106
- tag: 'div'
107
- }
108
- })
109
-
110
- expect(wrapper.element.tagName).toBe('DIV')
111
- expect(wrapper.attributes('type')).toBeUndefined()
112
- expect(wrapper.classes()).toContain('btn')
113
- expect(wrapper.classes()).toContain('btn-secondary')
114
- expect(wrapper.classes().length).toBe(2)
115
- expect(wrapper.attributes('role')).toBe('button')
116
- expect(wrapper.attributes('aria-disabled')).toBe('false')
117
- expect(wrapper.attributes('tabindex')).toBe('0')
118
- expect(wrapper.attributes('disabled')).toBeUndefined()
119
- expect(wrapper.attributes('aria-pressed')).toBeUndefined()
120
- expect(wrapper.attributes('autocomplete')).toBeUndefined()
121
-
122
- wrapper.destroy()
123
- })
124
-
125
- it('button has attribute disabled when disabled set', async () => {
126
- const wrapper = mount(BButton, {
127
- propsData: {
128
- disabled: true
129
- }
130
- })
131
-
132
- expect(wrapper.element.tagName).toBe('BUTTON')
133
- expect(wrapper.attributes('type')).toBe('button')
134
- expect(wrapper.classes()).toContain('btn')
135
- expect(wrapper.classes()).toContain('btn-secondary')
136
- expect(wrapper.classes()).toContain('disabled')
137
- expect(wrapper.classes().length).toBe(3)
138
- expect(wrapper.attributes('aria-disabled')).toBeUndefined()
139
-
140
- wrapper.destroy()
141
- })
142
-
143
- it('link has attribute aria-disabled when disabled set', async () => {
144
- const wrapper = mount(BButton, {
145
- propsData: {
146
- href: '/foo/bar',
147
- disabled: true
148
- }
149
- })
150
-
151
- expect(wrapper.element.tagName).toBe('A')
152
- expect(wrapper.classes()).toContain('btn')
153
- expect(wrapper.classes()).toContain('btn-secondary')
154
- expect(wrapper.classes()).toContain('disabled')
155
- // Both <b-button> and <b-link> add the class 'disabled'
156
- // `vue-functional-data-merge` or Vue doesn't appear to de-dup classes
157
- // expect(wrapper.classes().length).toBe(3)
158
- // Actually returns 4, as disabled is there twice
159
- expect(wrapper.attributes('aria-disabled')).toBeDefined()
160
- expect(wrapper.attributes('aria-disabled')).toBe('true')
161
- // Shouldn't have a role with href not `#`
162
- expect(wrapper.attributes('role')).not.toEqual('button')
163
-
164
- wrapper.destroy()
165
- })
166
-
167
- it('link with href="#" should have role="button"', async () => {
168
- const wrapper = mount(BButton, {
169
- propsData: {
170
- href: '#'
171
- }
172
- })
173
-
174
- expect(wrapper.element.tagName).toBe('A')
175
- expect(wrapper.classes()).toContain('btn')
176
- expect(wrapper.classes()).toContain('btn-secondary')
177
- expect(wrapper.classes()).not.toContain('disabled')
178
- expect(wrapper.attributes('role')).toEqual('button')
179
-
180
- wrapper.destroy()
181
- })
182
-
183
- it('should emit click event when clicked', async () => {
184
- let called = 0
185
- let event = null
186
- const wrapper = mount(BButton, {
187
- listeners: {
188
- click: e => {
189
- event = e
190
- called++
191
- }
192
- }
193
- })
194
-
195
- expect(wrapper.element.tagName).toBe('BUTTON')
196
- expect(called).toBe(0)
197
- expect(event).toEqual(null)
198
- await wrapper.find('button').trigger('click')
199
- expect(called).toBe(1)
200
- expect(event).toBeInstanceOf(MouseEvent)
201
-
202
- wrapper.destroy()
203
- })
204
-
205
- it('link with href="#" should treat keydown.space as click', async () => {
206
- let called = 0
207
- let event = null
208
- const wrapper = mount(BButton, {
209
- propsData: {
210
- href: '#'
211
- },
212
- listeners: {
213
- click: e => {
214
- event = e
215
- called++
216
- }
217
- }
218
- })
219
-
220
- expect(wrapper.element.tagName).toBe('A')
221
- expect(wrapper.classes()).toContain('btn')
222
- expect(wrapper.classes()).toContain('btn-secondary')
223
- expect(wrapper.classes()).not.toContain('disabled')
224
- expect(wrapper.attributes('role')).toEqual('button')
225
-
226
- expect(called).toBe(0)
227
- expect(event).toEqual(null)
228
-
229
- // We add keydown.space to make links act like buttons
230
- await wrapper.find('.btn').trigger('keydown.space')
231
- expect(called).toBe(1)
232
- expect(event).toBeInstanceOf(Event)
233
-
234
- // Links treat keydown.enter natively as a click
235
-
236
- wrapper.destroy()
237
- })
238
-
239
- it('should not emit click event when clicked and disabled', async () => {
240
- let called = 0
241
- const wrapper = mount(BButton, {
242
- propsData: {
243
- disabled: true
244
- },
245
- listeners: {
246
- click: () => {
247
- called++
248
- }
249
- }
250
- })
251
-
252
- expect(wrapper.element.tagName).toBe('BUTTON')
253
- expect(called).toBe(0)
254
- await wrapper.find('button').trigger('click')
255
- expect(called).toBe(0)
256
-
257
- wrapper.destroy()
258
- })
259
-
260
- it('should not have `.active` class and `aria-pressed` when pressed is null', async () => {
261
- const wrapper = mount(BButton, {
262
- propsData: {
263
- pressed: null
264
- }
265
- })
266
-
267
- expect(wrapper.classes()).not.toContain('active')
268
- expect(wrapper.attributes('aria-pressed')).toBeUndefined()
269
- await wrapper.find('button').trigger('click')
270
- expect(wrapper.classes()).not.toContain('active')
271
- expect(wrapper.attributes('aria-pressed')).toBeUndefined()
272
- expect(wrapper.attributes('autocomplete')).toBeUndefined()
273
-
274
- wrapper.destroy()
275
- })
276
-
277
- it('should not have `.active` class and have `aria-pressed="false"` when pressed is false', async () => {
278
- const wrapper = mount(BButton, {
279
- propsData: {
280
- pressed: false
281
- }
282
- })
283
-
284
- expect(wrapper.classes()).not.toContain('active')
285
- expect(wrapper.attributes('aria-pressed')).toBeDefined()
286
- expect(wrapper.attributes('aria-pressed')).toBe('false')
287
- expect(wrapper.attributes('autocomplete')).toBeDefined()
288
- expect(wrapper.attributes('autocomplete')).toBe('off')
289
-
290
- wrapper.destroy()
291
- })
292
-
293
- it('should have `.active` class and have `aria-pressed="true"` when pressed is true', async () => {
294
- const wrapper = mount(BButton, {
295
- propsData: {
296
- pressed: true
297
- }
298
- })
299
-
300
- expect(wrapper.classes()).toContain('active')
301
- expect(wrapper.attributes('aria-pressed')).toBeDefined()
302
- expect(wrapper.attributes('aria-pressed')).toBe('true')
303
- expect(wrapper.attributes('autocomplete')).toBeDefined()
304
- expect(wrapper.attributes('autocomplete')).toBe('off')
305
-
306
- wrapper.destroy()
307
- })
308
-
309
- it('pressed should have `.focus` class when focused', async () => {
310
- const wrapper = mount(BButton, {
311
- propsData: {
312
- pressed: false
313
- }
314
- })
315
-
316
- expect(wrapper.classes()).not.toContain('focus')
317
- await wrapper.trigger('focusin')
318
- expect(wrapper.classes()).toContain('focus')
319
- await wrapper.trigger('focusout')
320
- expect(wrapper.classes()).not.toContain('focus')
321
-
322
- wrapper.destroy()
323
- })
324
-
325
- it('should update the parent sync value on click and when pressed is not null', async () => {
326
- let called = 0
327
- const values = []
328
- const wrapper = mount(BButton, {
329
- propsData: {
330
- pressed: false
331
- },
332
- listeners: {
333
- 'update:pressed': value => {
334
- values.push(value)
335
- called++
336
- }
337
- }
338
- })
339
-
340
- expect(called).toBe(0)
341
-
342
- await wrapper.find('button').trigger('click')
343
-
344
- expect(called).toBe(1)
345
- expect(values[0]).toBe(true)
346
-
347
- wrapper.destroy()
348
- })
349
- })
@@ -1,105 +0,0 @@
1
- {
2
- "name": "@bootstrap-vue/button",
3
- "version": "1.0.0",
4
- "meta": {
5
- "title": "Button",
6
- "description": "Use BootstrapVue's <b-button> component for actions in forms, dialogs, and more. Includes support for a handful of contextual variations, sizes, states, and more.",
7
- "components": [
8
- {
9
- "component": "BButton",
10
- "aliases": [
11
- "BBtn"
12
- ],
13
- "props": [
14
- {
15
- "prop": "block",
16
- "description": "Renders a 100% width button (expands to the width of its parent container)"
17
- },
18
- {
19
- "prop": "pill",
20
- "description": "Renders the button with the pill style appearance when set to 'true'"
21
- },
22
- {
23
- "prop": "pressed",
24
- "description": "When set to 'true', gives the button the appearance of being pressed and adds attribute 'aria-pressed=\"true\"'. When set to `false` adds attribute 'aria-pressed=\"false\"'. Tri-state prop. Syncable with the .sync modifier"
25
- },
26
- {
27
- "prop": "size",
28
- "description": "Set the size of the component's appearance. 'sm', 'md' (default), or 'lg'"
29
- },
30
- {
31
- "prop": "squared",
32
- "description": "Renders the button with non-rounded corners when set to 'true'"
33
- },
34
- {
35
- "prop": "type",
36
- "description": "The value to set the button's 'type' attribute to. Can be one of 'button', 'submit', or 'reset'"
37
- },
38
- {
39
- "prop": "variant",
40
- "description": "Applies one of the Bootstrap theme color variants to the component"
41
- }
42
- ],
43
- "events": [
44
- {
45
- "event": "click",
46
- "description": "Emitted when non-disabled button clicked",
47
- "args": [
48
- {
49
- "name": "event",
50
- "type": "MouseEvent",
51
- "description": "Native click event object"
52
- }
53
- ]
54
- }
55
- ],
56
- "slots": [
57
- {
58
- "name": "default",
59
- "description": "Content to place in the button"
60
- }
61
- ]
62
- },
63
- {
64
- "component": "BButtonClose",
65
- "aliases": [
66
- "BBtnClose"
67
- ],
68
- "props": [
69
- {
70
- "prop": "ariaLabel",
71
- "description": "Sets the value of 'aria-label' attribute on the rendered element"
72
- },
73
- {
74
- "prop": "content",
75
- "version": "2.3.0",
76
- "description": "The content of the close button"
77
- },
78
- {
79
- "prop": "textVariant",
80
- "description": "Applies one of the Bootstrap theme color variants to the text"
81
- }
82
- ],
83
- "events": [
84
- {
85
- "event": "click",
86
- "description": "Emitted when non-disabled button clicked",
87
- "args": [
88
- {
89
- "name": "event",
90
- "type": "MouseEvent",
91
- "description": "Native click event object"
92
- }
93
- ]
94
- }
95
- ],
96
- "slots": [
97
- {
98
- "name": "default",
99
- "description": "Content to place in the button. Overrides the `content` prop"
100
- }
101
- ]
102
- }
103
- ]
104
- }
105
- }