@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,261 +0,0 @@
1
- {
2
- "name": "@bootstrap-vue/popover",
3
- "version": "1.0.0",
4
- "meta": {
5
- "title": "Popover",
6
- "description": "The Popover feature provides a tooltip-like behavior, can be easily applied to any interactive element via the <b-popover> component.",
7
- "components": [
8
- {
9
- "component": "BPopover",
10
- "props": [
11
- {
12
- "prop": "boundary",
13
- "description": "The boundary constraint of the popover: 'scrollParent', 'window', 'viewport', or a reference to an HTMLElement or component"
14
- },
15
- {
16
- "prop": "boundaryPadding",
17
- "description": "The popover will try and stay away from the edge of the boundary element by the number of pixels specified"
18
- },
19
- {
20
- "prop": "container",
21
- "description": "The container element to append the rendered popover when visible. Default's to the body element"
22
- },
23
- {
24
- "prop": "content",
25
- "description": "Text to place in the body of the popover"
26
- },
27
- {
28
- "prop": "customClass",
29
- "description": "CSS class (or classes) to apply to the popover's root element"
30
- },
31
- {
32
- "prop": "delay",
33
- "description": "Value for the show and hide delay. Applies to both show and hide when specified as a number or string. Use object form to set show and hide delays individually"
34
- },
35
- {
36
- "prop": "fallbackPlacement",
37
- "description": "Placement to use when the popover would be out of boundaries. Refer to the docs for more details"
38
- },
39
- {
40
- "prop": "offset",
41
- "description": "Offset (in pixels) for the arrow center compared to the trigger target element"
42
- },
43
- {
44
- "prop": "placement",
45
- "description": "Placement of the popover: One of 'top', 'bottom', 'right', 'left', 'topleft', 'topright', 'bottomleft', 'bottomright', 'lefttop', 'leftbottom', 'righttop', 'rightbottom'"
46
- },
47
- {
48
- "prop": "show",
49
- "description": "When set will show the popover"
50
- },
51
- {
52
- "prop": "target",
53
- "description": "Element string ID, or a reference to an element or component, that you want to trigger the popover"
54
- },
55
- {
56
- "prop": "title",
57
- "description": "Text to place in the popovers title"
58
- },
59
- {
60
- "prop": "triggers",
61
- "description": "Specify which triggers will show the popover. Supported values are 'click', 'hover', 'focus'. Refer to the docs for special triggers 'blur' and 'manual'"
62
- },
63
- {
64
- "prop": "variant",
65
- "description": "Applies one of the Bootstrap theme color variants to the component"
66
- }
67
- ],
68
- "events": [
69
- {
70
- "event": "bv::popover::disabled",
71
- "description": "Emitted on $root when popover becomes disabled",
72
- "args": [
73
- {
74
- "arg": "bvEvent",
75
- "type": "BvEvent",
76
- "description": "BvEvent object"
77
- }
78
- ]
79
- },
80
- {
81
- "event": "bv::popover::enabled",
82
- "description": "Emitted on $root when popover becomes enabled",
83
- "args": [
84
- {
85
- "arg": "bvEvent",
86
- "type": "BvEvent",
87
- "description": "BvEvent object"
88
- }
89
- ]
90
- },
91
- {
92
- "event": "bv::popover::hidden",
93
- "description": "Emitted on $root when popover is hidden",
94
- "args": [
95
- {
96
- "arg": "bvEvent",
97
- "type": "BvEvent",
98
- "description": "BvEvent object"
99
- }
100
- ]
101
- },
102
- {
103
- "event": "bv::popover::hide",
104
- "description": "Emitted on $root when popover is about to be hidden. Cancelable. Call bvEvent.preventDefault() to cancel hide",
105
- "args": [
106
- {
107
- "arg": "bvEvent",
108
- "type": "BvEvent",
109
- "description": "BvEvent object"
110
- }
111
- ]
112
- },
113
- {
114
- "event": "bv::popover::show",
115
- "description": "Emitted on $root when popover is about to be shown. Cancelable. Call bvEvent.preventDefault() to cancel show",
116
- "args": [
117
- {
118
- "arg": "bvEvent",
119
- "type": "BvEvent",
120
- "description": "BvEvent object"
121
- }
122
- ]
123
- },
124
- {
125
- "event": "bv::popover::shown",
126
- "description": "Emitted on $root when popover is shown",
127
- "args": [
128
- {
129
- "arg": "bvEvent",
130
- "type": "BvEvent",
131
- "description": "BvEvent object"
132
- }
133
- ]
134
- },
135
- {
136
- "event": "disabled",
137
- "description": "Emitted when popover becomes disabled",
138
- "args": [
139
- {
140
- "arg": "bvEvent",
141
- "type": "BvEvent",
142
- "description": "BvEvent object"
143
- }
144
- ]
145
- },
146
- {
147
- "event": "enabled",
148
- "description": "Emitted when popover becomes enabled",
149
- "args": [
150
- {
151
- "arg": "bvEvent",
152
- "type": "BvEvent",
153
- "description": "BvEvent object"
154
- }
155
- ]
156
- },
157
- {
158
- "event": "hidden",
159
- "description": "Emitted when popover is hidden",
160
- "args": [
161
- {
162
- "arg": "bvEvent",
163
- "type": "BvEvent",
164
- "description": "BvEvent object"
165
- }
166
- ]
167
- },
168
- {
169
- "event": "hide",
170
- "description": "Emitted when popover is about to be hidden. Cancelable. Call bvEvent.preventDefault() to cancel hide",
171
- "args": [
172
- {
173
- "arg": "bvEvent",
174
- "type": "BvEvent",
175
- "description": "BvEvent object"
176
- }
177
- ]
178
- },
179
- {
180
- "event": "show",
181
- "description": "Emitted when popover is about to be shown. Cancelable. Call bvEvent.preventDefault() to cancel show",
182
- "args": [
183
- {
184
- "arg": "bvEvent",
185
- "type": "BvEvent",
186
- "description": "BvEvent object"
187
- }
188
- ]
189
- },
190
- {
191
- "event": "shown",
192
- "description": "Emitted when popover is shown",
193
- "args": [
194
- {
195
- "arg": "bvEvent",
196
- "type": "BvEvent",
197
- "description": "BvEvent object"
198
- }
199
- ]
200
- }
201
- ],
202
- "rootEventListeners": [
203
- {
204
- "event": "bv::disable::popover",
205
- "description": "Disable all or a specific popover when this event is emitted on $root",
206
- "args": [
207
- {
208
- "arg": "id",
209
- "type": "String",
210
- "description": "Popover ID to disable (optional)"
211
- }
212
- ]
213
- },
214
- {
215
- "event": "bv::enable::popover",
216
- "description": "Enable all or a specific popover when this event is emitted on $root",
217
- "args": [
218
- {
219
- "arg": "id",
220
- "type": "String",
221
- "description": "Popover ID to enable (optional)"
222
- }
223
- ]
224
- },
225
- {
226
- "event": "bv::hide::popover",
227
- "description": "Close (hide) all or a specific open popover when this event is emitted on $root",
228
- "args": [
229
- {
230
- "arg": "id",
231
- "type": "String",
232
- "description": "Popover ID to hide (optional)"
233
- }
234
- ]
235
- },
236
- {
237
- "event": "bv::show::popover",
238
- "description": "Open (show) all or a specific popover when this event is emitted on $root",
239
- "args": [
240
- {
241
- "arg": "id",
242
- "type": "String",
243
- "description": "Popover ID to show (optional)"
244
- }
245
- ]
246
- }
247
- ],
248
- "slots": [
249
- {
250
- "name": "default",
251
- "description": "Slot for content (HTML/components supported)"
252
- },
253
- {
254
- "name": "title",
255
- "description": "Optional slot for title (HTML/components supported)"
256
- }
257
- ]
258
- }
259
- ]
260
- }
261
- }
@@ -1,198 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { waitNT, waitRAF } from '../../../tests/utils'
3
- import { BPopover } from './popover'
4
-
5
- // Our test application definition
6
- const App = {
7
- props: [
8
- 'triggers',
9
- 'show',
10
- 'disabled',
11
- 'noFade',
12
- 'title',
13
- 'titleAttr',
14
- 'btnDisabled',
15
- 'variant',
16
- 'customClass'
17
- ],
18
- render(h) {
19
- return h('article', { attrs: { id: 'wrapper' } }, [
20
- h(
21
- 'button',
22
- {
23
- attrs: {
24
- id: 'foo',
25
- type: 'button',
26
- disabled: this.btnDisabled || null,
27
- title: this.titleAttr || null
28
- }
29
- },
30
- 'text'
31
- ),
32
- h(
33
- BPopover,
34
- {
35
- attrs: {
36
- id: 'bar',
37
- 'data-foo': 'bar'
38
- },
39
- props: {
40
- target: 'foo',
41
- triggers: this.triggers,
42
- show: this.show,
43
- disabled: this.disabled,
44
- noFade: this.noFade || false,
45
- variant: this.variant,
46
- customClass: this.customClass
47
- }
48
- },
49
- [h('template', { slot: 'title' }, this.$slots.title), this.$slots.default || '']
50
- )
51
- ])
52
- }
53
- }
54
-
55
- // The majority of functionality has been tested in the tooltip component tests
56
- // as popover shares a common mixin with tooltip
57
- // So we just test a few key differences
58
-
59
- // Note: `wrapper.destroy()` MUST be called at the end of each test in order for
60
- // the next test to function properly!
61
- describe('b-popover', () => {
62
- const originalCreateRange = document.createRange
63
- const origGetBCR = Element.prototype.getBoundingClientRect
64
-
65
- beforeEach(() => {
66
- // https://github.com/FezVrasta/popper.js/issues/478#issuecomment-407422016
67
- // Hack to make Popper not bork out during tests
68
- // Note popper still does not do any positioning calculation in JSDOM though
69
- // So we cannot test actual positioning, just detect when it is open
70
- document.createRange = () => ({
71
- setStart: () => {},
72
- setEnd: () => {},
73
- commonAncestorContainer: {
74
- nodeName: 'BODY',
75
- ownerDocument: document
76
- }
77
- })
78
- // Mock `getBoundingClientRect()` so that the `isVisible(el)` test returns `true`
79
- // Needed for visibility checks of trigger element, etc
80
- Element.prototype.getBoundingClientRect = jest.fn(() => ({
81
- width: 24,
82
- height: 24,
83
- top: 0,
84
- left: 0,
85
- bottom: 0,
86
- right: 0
87
- }))
88
- })
89
-
90
- afterEach(async () => {
91
- // Reset overrides
92
- document.createRange = originalCreateRange
93
- Element.prototype.getBoundingClientRect = origGetBCR
94
- await waitRAF()
95
- })
96
-
97
- it('has expected default structure', async () => {
98
- const wrapper = mount(App, {
99
- attachTo: document.body,
100
- propsData: {
101
- triggers: 'click'
102
- },
103
- slots: {
104
- title: 'title',
105
- default: 'content'
106
- }
107
- })
108
-
109
- expect(wrapper.vm).toBeDefined()
110
- await waitNT(wrapper.vm)
111
-
112
- expect(wrapper.element.tagName).toBe('ARTICLE')
113
- expect(wrapper.attributes('id')).toBeDefined()
114
- expect(wrapper.attributes('id')).toEqual('wrapper')
115
-
116
- // The trigger button
117
- const $button = wrapper.find('button')
118
- expect($button.exists()).toBe(true)
119
- expect($button.attributes('id')).toBeDefined()
120
- expect($button.attributes('id')).toEqual('foo')
121
- expect($button.attributes('aria-describedby')).toBeUndefined()
122
-
123
- // <b-popover> wrapper
124
- const $tipHolder = wrapper.findComponent(BPopover)
125
- expect($tipHolder.exists()).toBe(true)
126
- expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
127
-
128
- wrapper.destroy()
129
- })
130
-
131
- it('initially open has expected structure', async () => {
132
- const wrapper = mount(App, {
133
- attachTo: document.body,
134
- propsData: {
135
- triggers: 'click',
136
- show: true
137
- },
138
- slots: {
139
- title: 'title',
140
- default: 'content'
141
- }
142
- })
143
-
144
- expect(wrapper.vm).toBeDefined()
145
- await waitNT(wrapper.vm)
146
- await waitRAF()
147
- await waitNT(wrapper.vm)
148
- await waitRAF()
149
- jest.runOnlyPendingTimers()
150
- await waitNT(wrapper.vm)
151
-
152
- expect(wrapper.element.tagName).toBe('ARTICLE')
153
- expect(wrapper.attributes('id')).toBeDefined()
154
- expect(wrapper.attributes('id')).toEqual('wrapper')
155
-
156
- // The trigger button
157
- const $button = wrapper.find('button')
158
- expect($button.exists()).toBe(true)
159
- expect($button.attributes('id')).toBeDefined()
160
- expect($button.attributes('id')).toEqual('foo')
161
- expect($button.attributes('data-original-title')).toBeUndefined()
162
- // ID of the tooltip that will be in the body
163
- const $adb = $button.attributes('aria-describedby')
164
-
165
- // <b-popover> wrapper
166
- const $tipHolder = wrapper.findComponent(BPopover)
167
- expect($tipHolder.exists()).toBe(true)
168
- expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
169
-
170
- // Find the popover element in the document
171
- const $tip = document.getElementById($adb)
172
- expect($tip).not.toBe(null)
173
- expect($tip).toBeInstanceOf(HTMLElement)
174
- expect($tip.tagName).toEqual('DIV')
175
- expect($tip.getAttribute('id')).toEqual('bar')
176
- expect($tip.getAttribute('data-foo')).toEqual('bar')
177
- expect($tip.classList.contains('popover')).toBe(true)
178
- expect($tip.classList.contains('b-popover')).toBe(true)
179
-
180
- // Hide the Popover
181
- await wrapper.setProps({
182
- show: false
183
- })
184
- await waitNT(wrapper.vm)
185
- await waitRAF()
186
- await waitNT(wrapper.vm)
187
- await waitRAF()
188
- jest.runOnlyPendingTimers()
189
-
190
- expect($button.attributes('aria-describedby')).toBeUndefined()
191
-
192
- // Popover element should not be in the document
193
- expect(document.body.contains($tip)).toBe(false)
194
- expect(document.getElementById($adb)).toBe(null)
195
-
196
- wrapper.destroy()
197
- })
198
- })