@gitlab/ui 114.1.0 → 114.1.2

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 (141) hide show
  1. package/dist/components/base/breadcrumb/breadcrumb.js +4 -16
  2. package/dist/index.css +1 -1
  3. package/dist/index.css.map +1 -1
  4. package/package.json +7 -26
  5. package/src/components/base/breadcrumb/breadcrumb.scss +18 -2
  6. package/src/components/base/breadcrumb/breadcrumb.vue +4 -17
  7. package/CHANGELOG.md +0 -13139
  8. package/src/vendor/bootstrap/LICENSE +0 -11
  9. package/src/vendor/bootstrap-vue/LICENSE +0 -11
  10. package/src/vendor/bootstrap-vue/package.json +0 -144
  11. package/src/vendor/bootstrap-vue/src/components/button/MODIFICATIONS.md +0 -16
  12. package/src/vendor/bootstrap-vue/src/components/button/README.md +0 -240
  13. package/src/vendor/bootstrap-vue/src/components/button/button-close.spec.js +0 -210
  14. package/src/vendor/bootstrap-vue/src/components/button/button.spec.js +0 -349
  15. package/src/vendor/bootstrap-vue/src/components/button/package.json +0 -105
  16. package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +0 -730
  17. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.spec.js +0 -58
  18. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.spec.js +0 -110
  19. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.spec.js +0 -94
  20. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.spec.js +0 -73
  21. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.spec.js +0 -117
  22. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.spec.js +0 -147
  23. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.spec.js +0 -59
  24. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.spec.js +0 -1121
  25. package/src/vendor/bootstrap-vue/src/components/dropdown/package.json +0 -368
  26. package/src/vendor/bootstrap-vue/src/components/form/README.md +0 -365
  27. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.spec.js +0 -170
  28. package/src/vendor/bootstrap-vue/src/components/form/form-text.spec.js +0 -93
  29. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.spec.js +0 -157
  30. package/src/vendor/bootstrap-vue/src/components/form/form.spec.js +0 -97
  31. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -112
  32. package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +0 -691
  33. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.spec.js +0 -525
  34. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.spec.js +0 -922
  35. package/src/vendor/bootstrap-vue/src/components/form-checkbox/package.json +0 -172
  36. package/src/vendor/bootstrap-vue/src/components/form-group/README.md +0 -339
  37. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.spec.js +0 -477
  38. package/src/vendor/bootstrap-vue/src/components/form-group/package.json +0 -183
  39. package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +0 -437
  40. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.spec.js +0 -357
  41. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.spec.js +0 -587
  42. package/src/vendor/bootstrap-vue/src/components/form-radio/package.json +0 -162
  43. package/src/vendor/bootstrap-vue/src/components/form-select/README.md +0 -504
  44. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.spec.js +0 -138
  45. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.spec.js +0 -75
  46. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.spec.js +0 -723
  47. package/src/vendor/bootstrap-vue/src/components/form-select/package.json +0 -132
  48. package/src/vendor/bootstrap-vue/src/components/form-textarea/README.md +0 -453
  49. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.spec.js +0 -1000
  50. package/src/vendor/bootstrap-vue/src/components/form-textarea/package.json +0 -122
  51. package/src/vendor/bootstrap-vue/src/components/layout/README.md +0 -791
  52. package/src/vendor/bootstrap-vue/src/components/layout/col.spec.js +0 -192
  53. package/src/vendor/bootstrap-vue/src/components/layout/form-row.spec.js +0 -45
  54. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -99
  55. package/src/vendor/bootstrap-vue/src/components/link/README.md +0 -76
  56. package/src/vendor/bootstrap-vue/src/components/link/link.spec.js +0 -434
  57. package/src/vendor/bootstrap-vue/src/components/link/package.json +0 -57
  58. package/src/vendor/bootstrap-vue/src/components/modal/MODIFICATIONS.md +0 -30
  59. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1067
  60. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.spec.js +0 -82
  61. package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +0 -1418
  62. package/src/vendor/bootstrap-vue/src/components/modal/package.json +0 -544
  63. package/src/vendor/bootstrap-vue/src/components/nav/README.md +0 -362
  64. package/src/vendor/bootstrap-vue/src/components/nav/nav-item.spec.js +0 -127
  65. package/src/vendor/bootstrap-vue/src/components/nav/nav.spec.js +0 -177
  66. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -73
  67. package/src/vendor/bootstrap-vue/src/components/popover/README.md +0 -919
  68. package/src/vendor/bootstrap-vue/src/components/popover/package.json +0 -261
  69. package/src/vendor/bootstrap-vue/src/components/popover/popover.spec.js +0 -198
  70. package/src/vendor/bootstrap-vue/src/components/table/README.md +0 -3157
  71. package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.spec.js +0 -112
  72. package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.spec.js +0 -93
  73. package/src/vendor/bootstrap-vue/src/components/table/package.json +0 -1763
  74. package/src/vendor/bootstrap-vue/src/components/table/table-busy.spec.js +0 -150
  75. package/src/vendor/bootstrap-vue/src/components/table/table-caption.spec.js +0 -176
  76. package/src/vendor/bootstrap-vue/src/components/table/table-colgroup.spec.js +0 -81
  77. package/src/vendor/bootstrap-vue/src/components/table/table-filtering.spec.js +0 -409
  78. package/src/vendor/bootstrap-vue/src/components/table/table-item-formatter.spec.js +0 -56
  79. package/src/vendor/bootstrap-vue/src/components/table/table-lite.spec.js +0 -682
  80. package/src/vendor/bootstrap-vue/src/components/table/table-pagination.spec.js +0 -133
  81. package/src/vendor/bootstrap-vue/src/components/table/table-primarykey.spec.js +0 -83
  82. package/src/vendor/bootstrap-vue/src/components/table/table-provider.spec.js +0 -411
  83. package/src/vendor/bootstrap-vue/src/components/table/table-row-details.spec.js +0 -459
  84. package/src/vendor/bootstrap-vue/src/components/table/table-selectable.spec.js +0 -1182
  85. package/src/vendor/bootstrap-vue/src/components/table/table-simple.spec.js +0 -206
  86. package/src/vendor/bootstrap-vue/src/components/table/table-sorting.spec.js +0 -858
  87. package/src/vendor/bootstrap-vue/src/components/table/table-sticky-column.spec.js +0 -377
  88. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-bottom-row.spec.js +0 -94
  89. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-row-events.spec.js +0 -529
  90. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-top-row.spec.js +0 -88
  91. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-transition.spec.js +0 -83
  92. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-custom.spec.js +0 -91
  93. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-events.spec.js +0 -137
  94. package/src/vendor/bootstrap-vue/src/components/table/table-thead-events.spec.js +0 -155
  95. package/src/vendor/bootstrap-vue/src/components/table/table-thead-top.spec.js +0 -96
  96. package/src/vendor/bootstrap-vue/src/components/table/table.spec.js +0 -692
  97. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +0 -433
  98. package/src/vendor/bootstrap-vue/src/components/tabs/package.json +0 -205
  99. package/src/vendor/bootstrap-vue/src/components/tabs/tab.spec.js +0 -330
  100. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.spec.js +0 -778
  101. package/src/vendor/bootstrap-vue/src/components/toast/README.md +0 -655
  102. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.spec.js +0 -117
  103. package/src/vendor/bootstrap-vue/src/components/toast/package.json +0 -184
  104. package/src/vendor/bootstrap-vue/src/components/toast/toast.spec.js +0 -294
  105. package/src/vendor/bootstrap-vue/src/components/toast/toaster.spec.js +0 -77
  106. package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +0 -559
  107. package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +0 -258
  108. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.spec.js +0 -1240
  109. package/src/vendor/bootstrap-vue/src/components/transition/package.json +0 -5
  110. package/src/vendor/bootstrap-vue/src/components/transporter/package.json +0 -5
  111. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.spec.js +0 -85
  112. package/src/vendor/bootstrap-vue/src/directives/modal/modal.spec.js +0 -191
  113. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +0 -521
  114. package/src/vendor/bootstrap-vue/src/directives/tooltip/package.json +0 -131
  115. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.spec.js +0 -190
  116. package/src/vendor/bootstrap-vue/src/directives/visible/README.md +0 -244
  117. package/src/vendor/bootstrap-vue/src/directives/visible/package.json +0 -24
  118. package/src/vendor/bootstrap-vue/src/mixins/attrs.spec.js +0 -194
  119. package/src/vendor/bootstrap-vue/src/mixins/click-out.spec.js +0 -52
  120. package/src/vendor/bootstrap-vue/src/mixins/focus-in.spec.js +0 -53
  121. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.spec.js +0 -117
  122. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.spec.js +0 -77
  123. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.spec.js +0 -115
  124. package/src/vendor/bootstrap-vue/src/mixins/listeners.spec.js +0 -245
  125. package/src/vendor/bootstrap-vue/src/utils/bv-event.class.spec.js +0 -66
  126. package/src/vendor/bootstrap-vue/src/utils/clone-deep.spec.js +0 -70
  127. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +0 -169
  128. package/src/vendor/bootstrap-vue/src/utils/css-escape.spec.js +0 -82
  129. package/src/vendor/bootstrap-vue/src/utils/dom.spec.js +0 -291
  130. package/src/vendor/bootstrap-vue/src/utils/events.spec.js +0 -41
  131. package/src/vendor/bootstrap-vue/src/utils/get.spec.js +0 -109
  132. package/src/vendor/bootstrap-vue/src/utils/inspect.spec.js +0 -251
  133. package/src/vendor/bootstrap-vue/src/utils/loose-equal.spec.js +0 -203
  134. package/src/vendor/bootstrap-vue/src/utils/normalize-slot.spec.js +0 -63
  135. package/src/vendor/bootstrap-vue/src/utils/number.spec.js +0 -72
  136. package/src/vendor/bootstrap-vue/src/utils/object.spec.js +0 -61
  137. package/src/vendor/bootstrap-vue/src/utils/props.spec.js +0 -112
  138. package/src/vendor/bootstrap-vue/src/utils/router.spec.js +0 -248
  139. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +0 -65
  140. package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.spec.js +0 -47
  141. package/src/vendor/bootstrap-vue/src/utils/warn.spec.js +0 -54
@@ -1,682 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { BTableLite } from './table-lite'
3
- import { wrapWithMethods } from '../../../tests/utils'
4
-
5
- const items1 = [{ a: 1, b: 2, c: 3 }, { a: 4, b: 5, c: 6 }]
6
- const fields1 = ['a', 'b', 'c']
7
-
8
- describe('table-lite', () => {
9
- it('has expected default classes', async () => {
10
- const wrapper = mount(BTableLite, {
11
- propsData: {
12
- items: items1,
13
- fields: fields1
14
- }
15
- })
16
-
17
- expect(wrapper).toBeDefined()
18
- expect(wrapper.element.tagName).toBe('TABLE')
19
- expect(wrapper.classes()).toContain('table')
20
- expect(wrapper.classes()).toContain('b-table')
21
- expect(wrapper.classes().length).toBe(2)
22
-
23
- wrapper.destroy()
24
- })
25
-
26
- it('has class "table-striped" when striped=true', async () => {
27
- const wrapper = mount(BTableLite, {
28
- propsData: {
29
- items: items1,
30
- fields: fields1,
31
- striped: true
32
- }
33
- })
34
-
35
- expect(wrapper).toBeDefined()
36
- expect(wrapper.element.tagName).toBe('TABLE')
37
- expect(wrapper.classes()).toContain('table-striped')
38
- expect(wrapper.classes()).toContain('table')
39
- expect(wrapper.classes()).toContain('b-table')
40
- expect(wrapper.classes().length).toBe(3)
41
-
42
- wrapper.destroy()
43
- })
44
-
45
- it('has class "table-bordered" when bordered=true', async () => {
46
- const wrapper = mount(BTableLite, {
47
- propsData: {
48
- items: items1,
49
- fields: fields1,
50
- bordered: true
51
- }
52
- })
53
-
54
- expect(wrapper).toBeDefined()
55
- expect(wrapper.element.tagName).toBe('TABLE')
56
- expect(wrapper.classes()).toContain('table-bordered')
57
- expect(wrapper.classes()).toContain('table')
58
- expect(wrapper.classes()).toContain('b-table')
59
- expect(wrapper.classes().length).toBe(3)
60
-
61
- wrapper.destroy()
62
- })
63
-
64
- it('has class "table-borderless" when borderless=true', async () => {
65
- const wrapper = mount(BTableLite, {
66
- propsData: {
67
- items: items1,
68
- fields: fields1,
69
- borderless: true
70
- }
71
- })
72
-
73
- expect(wrapper).toBeDefined()
74
- expect(wrapper.element.tagName).toBe('TABLE')
75
- expect(wrapper.classes()).toContain('table-borderless')
76
- expect(wrapper.classes()).toContain('table')
77
- expect(wrapper.classes()).toContain('b-table')
78
- expect(wrapper.classes().length).toBe(3)
79
-
80
- wrapper.destroy()
81
- })
82
-
83
- it('has class "table-hover" when hover=true', async () => {
84
- const wrapper = mount(BTableLite, {
85
- propsData: {
86
- items: items1,
87
- fields: fields1,
88
- hover: true
89
- }
90
- })
91
-
92
- expect(wrapper).toBeDefined()
93
- expect(wrapper.element.tagName).toBe('TABLE')
94
- expect(wrapper.classes()).toContain('table-hover')
95
- expect(wrapper.classes()).toContain('table')
96
- expect(wrapper.classes()).toContain('b-table')
97
- expect(wrapper.classes().length).toBe(3)
98
-
99
- wrapper.destroy()
100
- })
101
-
102
- it('has class "table-sm" when small=true', async () => {
103
- const wrapper = mount(BTableLite, {
104
- propsData: {
105
- items: items1,
106
- fields: fields1,
107
- small: true
108
- }
109
- })
110
-
111
- expect(wrapper).toBeDefined()
112
- expect(wrapper.element.tagName).toBe('TABLE')
113
- expect(wrapper.classes()).toContain('table-sm')
114
- expect(wrapper.classes()).toContain('table')
115
- expect(wrapper.classes()).toContain('b-table')
116
- expect(wrapper.classes().length).toBe(3)
117
-
118
- wrapper.destroy()
119
- })
120
-
121
- it('has class "table-dark" when dark=true', async () => {
122
- const wrapper = mount(BTableLite, {
123
- propsData: {
124
- items: items1,
125
- fields: fields1,
126
- dark: true
127
- }
128
- })
129
-
130
- expect(wrapper).toBeDefined()
131
- expect(wrapper.element.tagName).toBe('TABLE')
132
- expect(wrapper.classes()).toContain('table-dark')
133
- expect(wrapper.classes()).toContain('table')
134
- expect(wrapper.classes()).toContain('b-table')
135
- expect(wrapper.classes().length).toBe(3)
136
-
137
- wrapper.destroy()
138
- })
139
-
140
- it('has class "gl-border" when outlined=true', async () => {
141
- const wrapper = mount(BTableLite, {
142
- propsData: {
143
- items: items1,
144
- fields: fields1,
145
- outlined: true
146
- }
147
- })
148
-
149
- expect(wrapper).toBeDefined()
150
- expect(wrapper.element.tagName).toBe('TABLE')
151
- expect(wrapper.classes()).toContain('gl-border')
152
- expect(wrapper.classes()).toContain('table')
153
- expect(wrapper.classes()).toContain('b-table')
154
- expect(wrapper.classes().length).toBe(3)
155
-
156
- wrapper.destroy()
157
- })
158
-
159
- it('has class "b-table-fixed" when fixed=true', async () => {
160
- const wrapper = mount(BTableLite, {
161
- propsData: {
162
- items: items1,
163
- fields: fields1,
164
- fixed: true
165
- }
166
- })
167
-
168
- expect(wrapper).toBeDefined()
169
- expect(wrapper.element.tagName).toBe('TABLE')
170
- expect(wrapper.classes()).toContain('b-table-fixed')
171
- expect(wrapper.classes()).toContain('table')
172
- expect(wrapper.classes()).toContain('b-table')
173
- expect(wrapper.classes().length).toBe(3)
174
-
175
- wrapper.destroy()
176
- })
177
-
178
- it('has class "b-table-stacked" when stacked=true', async () => {
179
- const wrapper = mount(BTableLite, {
180
- propsData: {
181
- items: items1,
182
- fields: fields1,
183
- stacked: true
184
- }
185
- })
186
-
187
- expect(wrapper).toBeDefined()
188
- expect(wrapper.element.tagName).toBe('TABLE')
189
- expect(wrapper.classes()).toContain('b-table-stacked')
190
- expect(wrapper.classes()).toContain('table')
191
- expect(wrapper.classes()).toContain('b-table')
192
- expect(wrapper.classes().length).toBe(3)
193
-
194
- wrapper.destroy()
195
- })
196
-
197
- it('has class "b-table-stacked-md" when stacked=md', async () => {
198
- const wrapper = mount(BTableLite, {
199
- propsData: {
200
- items: items1,
201
- fields: fields1,
202
- stacked: 'md'
203
- }
204
- })
205
-
206
- expect(wrapper).toBeDefined()
207
- expect(wrapper.element.tagName).toBe('TABLE')
208
- expect(wrapper.classes()).toContain('b-table-stacked-md')
209
- expect(wrapper.classes()).toContain('table')
210
- expect(wrapper.classes()).toContain('b-table')
211
- expect(wrapper.classes().length).toBe(3)
212
-
213
- wrapper.destroy()
214
- })
215
-
216
- it('has class "table-responsive" when responsive=true', async () => {
217
- const wrapper = mount(BTableLite, {
218
- propsData: {
219
- items: items1,
220
- fields: fields1,
221
- responsive: true
222
- }
223
- })
224
-
225
- expect(wrapper).toBeDefined()
226
- expect(wrapper.element.tagName).toBe('DIV')
227
- expect(wrapper.classes()).toContain('table-responsive')
228
- expect(wrapper.classes().length).toBe(1)
229
-
230
- const $table = wrapper.find('table')
231
- expect($table.exists()).toBe(true)
232
- expect($table.classes()).toContain('table')
233
- expect($table.classes()).toContain('b-table')
234
- expect($table.classes().length).toBe(2)
235
-
236
- wrapper.destroy()
237
- })
238
-
239
- it('has class "table-responsive-md" when responsive=md', async () => {
240
- const wrapper = mount(BTableLite, {
241
- propsData: {
242
- items: items1,
243
- fields: fields1,
244
- responsive: 'md'
245
- }
246
- })
247
-
248
- expect(wrapper).toBeDefined()
249
- expect(wrapper.element.tagName).toBe('DIV')
250
- expect(wrapper.classes()).toContain('table-responsive-md')
251
- expect(wrapper.classes().length).toBe(1)
252
-
253
- const $table = wrapper.find('table')
254
- expect($table.exists()).toBe(true)
255
- expect($table.classes()).toContain('table')
256
- expect($table.classes()).toContain('b-table')
257
- expect($table.classes().length).toBe(2)
258
-
259
- wrapper.destroy()
260
- })
261
-
262
- it('stacked and responsive work together', async () => {
263
- const wrapper = mount(BTableLite, {
264
- propsData: {
265
- items: items1,
266
- fields: fields1,
267
- stacked: true,
268
- responsive: true
269
- }
270
- })
271
-
272
- expect(wrapper).toBeDefined()
273
- expect(wrapper.element.tagName).toBe('DIV')
274
- expect(wrapper.classes()).toContain('table-responsive')
275
- expect(wrapper.classes().length).toBe(1)
276
-
277
- const $table = wrapper.find('table')
278
- expect($table.exists()).toBe(true)
279
- expect($table.classes()).toContain('table')
280
- expect($table.classes()).toContain('b-table')
281
- expect($table.classes()).toContain('b-table-stacked')
282
- expect($table.classes().length).toBe(3)
283
-
284
- wrapper.destroy()
285
- })
286
-
287
- it('stacked has data-label attribute on all tbody > tr td', async () => {
288
- const wrapper = mount(BTableLite, {
289
- propsData: {
290
- items: items1,
291
- fields: fields1,
292
- stacked: true
293
- }
294
- })
295
-
296
- expect(wrapper).toBeDefined()
297
- expect(wrapper.findAll('tbody > tr').length).toBe(2)
298
- const $trs = wrapper.findAll('tbody > tr').wrappers
299
-
300
- // Labels will have run through startCase
301
- expect(
302
- $trs[0]
303
- .findAll('td')
304
- .at(0)
305
- .attributes('data-label')
306
- ).toBe('A')
307
- expect(
308
- $trs[1]
309
- .findAll('td')
310
- .at(0)
311
- .attributes('data-label')
312
- ).toBe('A')
313
-
314
- expect(
315
- $trs[0]
316
- .findAll('td')
317
- .at(1)
318
- .attributes('data-label')
319
- ).toBe('B')
320
- expect(
321
- $trs[1]
322
- .findAll('td')
323
- .at(1)
324
- .attributes('data-label')
325
- ).toBe('B')
326
-
327
- expect(
328
- $trs[0]
329
- .findAll('td')
330
- .at(2)
331
- .attributes('data-label')
332
- ).toBe('C')
333
- expect(
334
- $trs[1]
335
- .findAll('td')
336
- .at(2)
337
- .attributes('data-label')
338
- ).toBe('C')
339
-
340
- wrapper.destroy()
341
- })
342
-
343
- it('item _rowVariant works', async () => {
344
- const wrapper = mount(BTableLite, {
345
- propsData: {
346
- items: [{ a: 1, _rowVariant: 'primary' }],
347
- fields: ['a'],
348
- dark: false
349
- }
350
- })
351
-
352
- expect(wrapper).toBeDefined()
353
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
354
- expect(wrapper.find('tbody > tr').classes()).toContain('table-primary')
355
-
356
- await wrapper.setProps({
357
- dark: true
358
- })
359
-
360
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
361
- expect(wrapper.find('tbody > tr').classes()).toContain('bg-primary')
362
-
363
- wrapper.destroy()
364
- })
365
-
366
- it('item _cellVariants works', async () => {
367
- const wrapper = mount(BTableLite, {
368
- propsData: {
369
- items: [{ a: 1, _cellVariants: { a: 'info' } }],
370
- fields: ['a'],
371
- dark: false
372
- }
373
- })
374
-
375
- expect(wrapper).toBeDefined()
376
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
377
- expect(wrapper.findAll('tbody > tr > td').length).toBe(1)
378
- expect(wrapper.find('tbody > tr > td').classes()).toContain('table-info')
379
-
380
- await wrapper.setProps({
381
- dark: true
382
- })
383
-
384
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
385
- expect(wrapper.findAll('tbody > tr > td').length).toBe(1)
386
- expect(wrapper.find('tbody > tr > td').classes()).toContain('bg-info')
387
-
388
- wrapper.destroy()
389
- })
390
-
391
- it('changing items array works', async () => {
392
- const items1 = [{ a: 1, b: 2 }, { a: 3, b: 4 }]
393
- const items2 = [{ a: 3, b: 4 }]
394
- const wrapper = mount(BTableLite, {
395
- propsData: {
396
- items: items1,
397
- fields: ['a', 'b']
398
- }
399
- })
400
- expect(wrapper).toBeDefined()
401
-
402
- expect(wrapper.findAll('tbody > tr').length).toBe(2)
403
- await wrapper.setProps({
404
- items: items2
405
- })
406
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
407
-
408
- wrapper.destroy()
409
- })
410
-
411
- it('tbody-tr-class works', async () => {
412
- const wrapper = mount(BTableLite, {
413
- propsData: {
414
- items: [{ a: 1, b: 2 }, { a: 3, b: 4 }],
415
- fields: ['a', 'b'],
416
- tbodyTrClass: 'foobar'
417
- }
418
- })
419
-
420
- expect(wrapper).toBeDefined()
421
-
422
- // Prop as a string
423
- expect(wrapper.findAll('tbody > tr').length).toBe(2)
424
- let $trs = wrapper.findAll('tbody > tr')
425
- expect($trs.at(0).classes()).toContain('foobar')
426
- expect($trs.at(1).classes()).toContain('foobar')
427
-
428
- // As a function
429
- await wrapper.setProps({
430
- tbodyTrClass: item => {
431
- return item.a === 1 ? 'foo' : 'bar'
432
- }
433
- })
434
-
435
- expect(wrapper.findAll('tbody > tr').length).toBe(2)
436
- $trs = wrapper.findAll('tbody > tr')
437
- expect($trs.at(0).classes()).toContain('foo')
438
- expect($trs.at(0).classes()).not.toContain('bar')
439
- expect($trs.at(1).classes()).toContain('bar')
440
- expect($trs.at(1).classes()).not.toContain('foo')
441
-
442
- wrapper.destroy()
443
- })
444
-
445
- it('thead and tfoot variant and classes work', async () => {
446
- const wrapper = mount(BTableLite, {
447
- propsData: {
448
- items: [{ a: 1, b: 2 }],
449
- fields: ['a', 'b'],
450
- footClone: true
451
- }
452
- })
453
-
454
- expect(wrapper).toBeDefined()
455
- expect(wrapper.findAll('thead > tr').length).toBe(1)
456
- expect(wrapper.findAll('tfoot > tr').length).toBe(1)
457
-
458
- expect(wrapper.find('thead').classes().length).toBe(0)
459
- expect(wrapper.find('tfoot').classes().length).toBe(0)
460
-
461
- await wrapper.setProps({
462
- headVariant: 'light'
463
- })
464
-
465
- expect(wrapper.find('thead').classes()).toContain('thead-light')
466
- expect(wrapper.find('tfoot').classes()).toContain('thead-light')
467
-
468
- await wrapper.setProps({
469
- footVariant: 'dark'
470
- })
471
-
472
- expect(wrapper.find('thead').classes()).toContain('thead-light')
473
- expect(wrapper.find('tfoot').classes()).toContain('thead-dark')
474
-
475
- await wrapper.setProps({
476
- theadClass: 'foo',
477
- tfootClass: 'bar'
478
- })
479
-
480
- expect(wrapper.find('thead').classes()).toContain('thead-light')
481
- expect(wrapper.find('thead').classes()).toContain('foo')
482
- expect(wrapper.find('tfoot').classes()).toContain('thead-dark')
483
- expect(wrapper.find('tfoot').classes()).toContain('bar')
484
-
485
- await wrapper.setProps({
486
- theadTrClass: 'willy',
487
- tfootTrClass: 'wonka'
488
- })
489
-
490
- expect(wrapper.find('thead > tr').classes()).toContain('willy')
491
- expect(wrapper.find('tfoot > tr').classes()).toContain('wonka')
492
-
493
- wrapper.destroy()
494
- })
495
-
496
- it('item field isRowHeader works', async () => {
497
- const wrapper = mount(BTableLite, {
498
- propsData: {
499
- items: [{ a: 1, b: 2 }],
500
- fields: [{ key: 'a', isRowHeader: true }, 'b']
501
- }
502
- })
503
-
504
- expect(wrapper).toBeDefined()
505
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
506
- expect(wrapper.findAll('tbody > tr > *').length).toBe(2)
507
-
508
- expect(wrapper.findAll('tbody > tr > *').at(0).element.tagName).toBe('TH')
509
- expect(
510
- wrapper
511
- .findAll('tbody > tr > *')
512
- .at(0)
513
- .attributes('role')
514
- ).toBe('rowheader')
515
- expect(
516
- wrapper
517
- .findAll('tbody > tr > *')
518
- .at(0)
519
- .attributes('scope')
520
- ).toBe('row')
521
-
522
- expect(wrapper.findAll('tbody > tr > *').at(1).element.tagName).toBe('TD')
523
- expect(
524
- wrapper
525
- .findAll('tbody > tr > *')
526
- .at(1)
527
- .attributes('role')
528
- ).toBe('cell')
529
- expect(
530
- wrapper
531
- .findAll('tbody > tr > *')
532
- .at(1)
533
- .attributes('scope')
534
- ).toBeUndefined()
535
-
536
- wrapper.destroy()
537
- })
538
-
539
- it('item field tdAttr and tdClass works', async () => {
540
- const wrapper = mount(
541
- wrapWithMethods(BTableLite, {
542
- parentTdAttrs() {
543
- return { 'data-parent': 'parent' }
544
- }
545
- }),
546
- {
547
- propsData: {
548
- items: [{ a: 1, b: 2, c: 3 }],
549
- fields: [
550
- { key: 'a', tdAttr: { 'data-foo': 'bar' } },
551
- { key: 'b', tdClass: () => 'baz' },
552
- { key: 'c', tdAttr: 'parentTdAttrs' }
553
- ]
554
- }
555
- }
556
- )
557
-
558
- expect(wrapper).toBeDefined()
559
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
560
- expect(wrapper.findAll('tbody > tr > td').length).toBe(3)
561
-
562
- const $tds = wrapper.findAll('tbody > tr > td')
563
-
564
- expect($tds.at(0).attributes('data-foo')).toBe('bar')
565
- expect($tds.at(0).attributes('data-parent')).toBeUndefined()
566
- expect($tds.at(0).classes().length).toBe(0)
567
-
568
- expect($tds.at(1).classes()).toContain('baz')
569
- expect($tds.at(1).attributes('data-foo')).toBeUndefined()
570
- expect($tds.at(1).attributes('data-parent')).toBeUndefined()
571
-
572
- expect($tds.at(2).attributes('data-parent')).toBe('parent')
573
- expect($tds.at(2).attributes('data-foo')).toBeUndefined()
574
- expect($tds.at(2).classes().length).toBe(0)
575
-
576
- wrapper.destroy()
577
- })
578
-
579
- it('item field thAttr works', async () => {
580
- const wrapper = mount(
581
- wrapWithMethods(BTableLite, {
582
- parentThAttrs(value, key, item, type) {
583
- return { 'data-type': type }
584
- }
585
- }),
586
- {
587
- propsData: {
588
- items: [{ a: 1, b: 2, c: 3 }],
589
- fields: [
590
- { key: 'a', thAttr: { 'data-foo': 'bar' } },
591
- { key: 'b', thAttr: 'parentThAttrs', isRowHeader: true },
592
- {
593
- key: 'c',
594
- thAttr: (v, k, i, t) => {
595
- return { 'data-type': t }
596
- }
597
- }
598
- ]
599
- }
600
- }
601
- )
602
-
603
- expect(wrapper).toBeDefined()
604
- expect(wrapper.findAll('thead > tr').length).toBe(1)
605
- expect(wrapper.findAll('thead > tr > th').length).toBe(3)
606
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
607
- expect(wrapper.findAll('tbody > tr > td').length).toBe(2)
608
- expect(wrapper.findAll('tbody > tr > th').length).toBe(1)
609
-
610
- const $headerThs = wrapper.findAll('thead > tr > th')
611
- expect($headerThs.at(0).attributes('data-foo')).toBe('bar')
612
- expect($headerThs.at(0).attributes('data-type')).toBeUndefined()
613
- expect($headerThs.at(0).classes().length).toBe(0)
614
-
615
- expect($headerThs.at(1).attributes('data-foo')).toBeUndefined()
616
- expect($headerThs.at(1).attributes('data-type')).toBe('head')
617
- expect($headerThs.at(1).classes().length).toBe(0)
618
-
619
- expect($headerThs.at(2).attributes('data-foo')).toBeUndefined()
620
- expect($headerThs.at(2).attributes('data-type')).toBe('head')
621
- expect($headerThs.at(2).classes().length).toBe(0)
622
-
623
- const $bodyThs = wrapper.findAll('tbody > tr > th')
624
-
625
- expect($bodyThs.at(0).attributes('data-foo')).toBeUndefined()
626
- expect($bodyThs.at(0).attributes('data-type')).toBe('row')
627
- expect($bodyThs.at(0).classes().length).toBe(0)
628
-
629
- wrapper.destroy()
630
- })
631
-
632
- it('item field formatter as function works', async () => {
633
- const wrapper = mount(BTableLite, {
634
- propsData: {
635
- items: [{ a: 1, b: 2 }],
636
- fields: [
637
- {
638
- key: 'a',
639
- formatter(value, key, item) {
640
- return item.a + item.b
641
- }
642
- },
643
- 'b'
644
- ]
645
- }
646
- })
647
-
648
- expect(wrapper).toBeDefined()
649
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
650
- expect(wrapper.findAll('tbody > tr > td').length).toBe(2)
651
- const $tds = wrapper.findAll('tbody > tr > td')
652
- expect($tds.at(0).text()).toBe('3')
653
- expect($tds.at(1).text()).toBe('2')
654
-
655
- wrapper.destroy()
656
- })
657
-
658
- it('item field formatter as string works', async () => {
659
- const wrapper = mount(
660
- wrapWithMethods(BTableLite, {
661
- formatter(value, key, item) {
662
- return item.a + item.b
663
- }
664
- }),
665
- {
666
- propsData: {
667
- items: [{ a: 1, b: 2 }],
668
- fields: [{ key: 'a', formatter: 'formatter' }, 'b']
669
- }
670
- }
671
- )
672
-
673
- expect(wrapper).toBeDefined()
674
- expect(wrapper.findAll('tbody > tr').length).toBe(1)
675
- expect(wrapper.findAll('tbody > tr > td').length).toBe(2)
676
- const $tds = wrapper.findAll('tbody > tr > td')
677
- expect($tds.at(0).text()).toBe('3')
678
- expect($tds.at(1).text()).toBe('2')
679
-
680
- wrapper.destroy()
681
- })
682
- })