@gitlab/ui 32.41.0 → 32.43.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 (126) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/base/form/form_group/examples/form_group/form_group.validation.example.js +3 -3
  3. package/dist/components/base/token_selector/token_selector.documentation.js +2 -106
  4. package/dist/components/base/token_selector/token_selector.js +85 -1
  5. package/dist/components/base/tooltip/tooltip.documentation.js +2 -6
  6. package/dist/components/charts/area/area.js +1 -1
  7. package/dist/components/charts/discrete_scatter/discrete_scatter.js +1 -1
  8. package/dist/components/charts/line/line.js +1 -1
  9. package/dist/components/regions/empty_state/empty_state.js +1 -1
  10. package/dist/utility_classes.css +1 -1
  11. package/dist/utility_classes.css.map +1 -1
  12. package/documentation/documented_stories.js +2 -0
  13. package/package.json +13 -13
  14. package/src/components/base/accordion/accordion.spec.js +0 -4
  15. package/src/components/base/accordion/accordion_item.spec.js +0 -4
  16. package/src/components/base/alert/alert.spec.js +0 -4
  17. package/src/components/base/avatar_labeled/avatar_labeled.spec.js +0 -2
  18. package/src/components/base/avatars_inline/avatars_inline.spec.js +0 -2
  19. package/src/components/base/badge/badge.spec.js +0 -2
  20. package/src/components/base/broadcast_message/broadcast_message.spec.js +0 -4
  21. package/src/components/base/button/button.spec.js +0 -5
  22. package/src/components/base/card/card.spec.js +0 -5
  23. package/src/components/base/carousel/carousel.spec.js +0 -4
  24. package/src/components/base/collapse/collapse.spec.js +0 -4
  25. package/src/components/base/datepicker/datepicker.spec.js +0 -4
  26. package/src/components/base/daterange_picker/daterange_picker.spec.js +0 -5
  27. package/src/components/base/drawer/drawer.spec.js +0 -4
  28. package/src/components/base/dropdown/dropdown.spec.js +0 -2
  29. package/src/components/base/dropdown/dropdown_item.spec.js +0 -2
  30. package/src/components/base/filtered_search/filtered_search.spec.js +0 -10
  31. package/src/components/base/filtered_search/filtered_search_suggestion.spec.js +0 -5
  32. package/src/components/base/filtered_search/filtered_search_suggestion_list.spec.js +0 -5
  33. package/src/components/base/filtered_search/filtered_search_term.spec.js +0 -5
  34. package/src/components/base/filtered_search/filtered_search_token.spec.js +0 -5
  35. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.spec.js +0 -5
  36. package/src/components/base/form/form_combobox/form_combobox.spec.js +0 -4
  37. package/src/components/base/form/form_group/examples/form_group/form_group.validation.example.vue +3 -3
  38. package/src/components/base/form/form_group/form_group.stories.js +3 -3
  39. package/src/components/base/form/form_input/form_input.spec.js +0 -5
  40. package/src/components/base/form/form_input_group/form_input_group.spec.js +0 -4
  41. package/src/components/base/form/form_radio/form_radio.spec.js +0 -4
  42. package/src/components/base/form/form_radio_group/form_radio_group.spec.js +0 -4
  43. package/src/components/base/form/form_select/form_select.spec.js +0 -5
  44. package/src/components/base/form/form_textarea/form_textarea.spec.js +0 -5
  45. package/src/components/base/icon/icon.spec.js +0 -2
  46. package/src/components/base/infinite_scroll/infinite_scroll.spec.js +0 -1
  47. package/src/components/base/keyset_pagination/keyset_pagination.spec.js +0 -5
  48. package/src/components/base/label/label.spec.js +0 -4
  49. package/src/components/base/link/link.spec.js +0 -5
  50. package/src/components/base/loading_icon/loading_icon.spec.js +0 -4
  51. package/src/components/base/modal/modal.spec.js +0 -1
  52. package/src/components/base/nav/nav.spec.js +0 -4
  53. package/src/components/base/nav/nav_item.spec.js +0 -4
  54. package/src/components/base/nav/nav_item_dropdown.spec.js +0 -4
  55. package/src/components/base/paginated_list/paginated_list.spec.js +0 -6
  56. package/src/components/base/pagination/pagination.spec.js +0 -1
  57. package/src/components/base/path/path.spec.js +0 -5
  58. package/src/components/base/popover/popover.spec.js +0 -5
  59. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +0 -4
  60. package/src/components/base/search_box_by_type/search_box_by_type.spec.js +0 -5
  61. package/src/components/base/segmented_control/segmented_control.spec.js +0 -4
  62. package/src/components/base/skeleton_loader/skeleton_loader.spec.js +0 -5
  63. package/src/components/base/sorting/sorting.spec.js +0 -4
  64. package/src/components/base/sorting/sorting_item.spec.js +0 -4
  65. package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -5
  66. package/src/components/base/toggle/toggle.spec.js +0 -4
  67. package/src/components/base/token/token.spec.js +0 -4
  68. package/src/components/base/token_selector/token_container.spec.js +0 -2
  69. package/src/components/base/token_selector/token_selector.documentation.js +0 -137
  70. package/src/components/base/token_selector/token_selector.md +0 -6
  71. package/src/components/base/token_selector/token_selector.spec.js +0 -5
  72. package/src/components/base/token_selector/token_selector.stories.js +96 -113
  73. package/src/components/base/token_selector/token_selector.vue +89 -1
  74. package/src/components/base/token_selector/token_selector_dropdown.spec.js +0 -5
  75. package/src/components/base/tooltip/tooltip.documentation.js +0 -3
  76. package/src/components/base/tooltip/tooltip.md +3 -5
  77. package/src/components/base/tooltip/tooltip.spec.js +0 -5
  78. package/src/components/base/tooltip/tooltip.stories.js +49 -25
  79. package/src/components/base/tooltip/tooltip.vue +1 -0
  80. package/src/components/charts/area/area.spec.js +8 -24
  81. package/src/components/charts/area/area.vue +9 -12
  82. package/src/components/charts/bar/bar.spec.js +4 -11
  83. package/src/components/charts/chart/chart.spec.js +0 -4
  84. package/src/components/charts/column/column_chart.spec.js +0 -4
  85. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -0
  86. package/src/components/charts/discrete_scatter/discrete_scatter.vue +5 -8
  87. package/src/components/charts/gauge/gauge.spec.js +2 -24
  88. package/src/components/charts/heatmap/heatmap.spec.js +6 -23
  89. package/src/components/charts/legend/legend.spec.js +8 -14
  90. package/src/components/charts/line/line.spec.js +19 -30
  91. package/src/components/charts/line/line.vue +3 -2
  92. package/src/components/charts/single_stat/single_stat.spec.js +0 -4
  93. package/src/components/charts/sparkline/sparkline.spec.js +9 -15
  94. package/src/components/charts/stacked_column/stacked_column.spec.js +0 -1
  95. package/src/components/regions/empty_state/empty_state.vue +8 -2
  96. package/src/components/shared_components/clear_icon_button/clear_icon_button.spec.js +0 -4
  97. package/src/components/shared_components/close_button/close_button.spec.js +0 -4
  98. package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +0 -4
  99. package/src/components/utilities/intersection_observer/intersection_observer.spec.js +1 -1
  100. package/src/components/utilities/sprintf/sprintf.spec.js +0 -4
  101. package/src/components/utilities/truncate/truncate.spec.js +10 -15
  102. package/src/directives/hover_load/hover_load.spec.js +0 -1
  103. package/src/directives/outside/outside.spec.js +0 -4
  104. package/src/directives/resize_observer/resize_observer.spec.js +0 -4
  105. package/src/directives/safe_html/safe_html.spec.js +0 -4
  106. package/src/directives/safe_link/safe_link.spec.js +0 -5
  107. package/src/scss/utilities.scss +26 -0
  108. package/src/scss/utility-mixins/sizing.scss +6 -0
  109. package/src/scss/utility-mixins/spacing.scss +4 -0
  110. package/src/scss/utility-mixins/z-index.scss +4 -0
  111. package/dist/components/base/token_selector/examples/index.js +0 -19
  112. package/dist/components/base/token_selector/examples/token_selector.user_defined_tokens.example.js +0 -48
  113. package/dist/components/base/token_selector/examples/token_selector.users.example.js +0 -202
  114. package/dist/components/base/tooltip/examples/index.js +0 -31
  115. package/dist/components/base/tooltip/examples/tooltip.directive_bottom.example.js +0 -38
  116. package/dist/components/base/tooltip/examples/tooltip.directive_default.example.js +0 -38
  117. package/dist/components/base/tooltip/examples/tooltip.directive_left.example.js +0 -38
  118. package/dist/components/base/tooltip/examples/tooltip.directive_right.example.js +0 -38
  119. package/src/components/base/token_selector/examples/index.js +0 -22
  120. package/src/components/base/token_selector/examples/token_selector.user_defined_tokens.example.vue +0 -17
  121. package/src/components/base/token_selector/examples/token_selector.users.example.vue +0 -212
  122. package/src/components/base/tooltip/examples/index.js +0 -36
  123. package/src/components/base/tooltip/examples/tooltip.directive_bottom.example.vue +0 -7
  124. package/src/components/base/tooltip/examples/tooltip.directive_default.example.vue +0 -5
  125. package/src/components/base/tooltip/examples/tooltip.directive_left.example.vue +0 -7
  126. package/src/components/base/tooltip/examples/tooltip.directive_right.example.vue +0 -7
@@ -92,6 +92,8 @@ export const setupStorybookReadme = () =>
92
92
  'GlBarChart',
93
93
  'GlCarousel',
94
94
  'GlMarkdown',
95
+ 'GlTokenSelector',
96
+ 'GlTooltip',
95
97
  ],
96
98
  components: {
97
99
  GlComponentDocumentation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "32.41.0",
3
+ "version": "32.43.2",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -82,21 +82,21 @@
82
82
  "@arkweid/lefthook": "^0.7.6",
83
83
  "@babel/core": "^7.10.2",
84
84
  "@babel/preset-env": "^7.10.2",
85
- "@gitlab/eslint-plugin": "9.4.0",
85
+ "@gitlab/eslint-plugin": "10.0.0",
86
86
  "@gitlab/stylelint-config": "2.6.0",
87
- "@gitlab/svgs": "1.221.0",
87
+ "@gitlab/svgs": "1.225.0",
88
88
  "@rollup/plugin-commonjs": "^11.1.0",
89
89
  "@rollup/plugin-node-resolve": "^7.1.3",
90
90
  "@rollup/plugin-replace": "^2.3.2",
91
- "@storybook/addon-a11y": "6.3.12",
92
- "@storybook/addon-docs": "6.3.12",
93
- "@storybook/addon-essentials": "6.3.12",
94
- "@storybook/addon-knobs": "6.3.1",
95
- "@storybook/addon-storyshots": "6.3.12",
96
- "@storybook/addon-storyshots-puppeteer": "6.3.12",
97
- "@storybook/addon-viewport": "6.3.12",
98
- "@storybook/theming": "6.3.12",
99
- "@storybook/vue": "6.3.12",
91
+ "@storybook/addon-a11y": "6.4.8",
92
+ "@storybook/addon-docs": "6.4.8",
93
+ "@storybook/addon-essentials": "6.4.8",
94
+ "@storybook/addon-knobs": "6.4.0",
95
+ "@storybook/addon-storyshots": "6.4.8",
96
+ "@storybook/addon-storyshots-puppeteer": "6.4.8",
97
+ "@storybook/addon-viewport": "6.4.8",
98
+ "@storybook/theming": "6.4.8",
99
+ "@storybook/vue": "6.4.8",
100
100
  "@vue/test-utils": "1.1.3",
101
101
  "autoprefixer": "^9.7.6",
102
102
  "babel-jest": "^26.6.3",
@@ -129,7 +129,7 @@
129
129
  "postcss-scss": "^2.1.1",
130
130
  "prettier": "2.2.1",
131
131
  "pug": "^2.0.3",
132
- "puppeteer": "^10.4.0",
132
+ "puppeteer": "11.0.0",
133
133
  "raw-loader": "^0.5.1",
134
134
  "rollup": "^2.53.1",
135
135
  "rollup-plugin-babel": "^4.4.0",
@@ -6,10 +6,6 @@ import GlAccordionItem from './accordion_item.vue';
6
6
  describe('GlAccordion', () => {
7
7
  let wrapper;
8
8
 
9
- afterEach(() => {
10
- wrapper.destroy();
11
- });
12
-
13
9
  const createComponent = ({ headerLevel = 3, autoCollapse = false } = {}) => {
14
10
  wrapper = mount(
15
11
  Vue.extend({
@@ -10,10 +10,6 @@ describe('GlAccordionItem', () => {
10
10
  const defaultTitle = 'Item 1';
11
11
  const defaultSlot = 'Hello';
12
12
 
13
- afterEach(() => {
14
- wrapper.destroy();
15
- });
16
-
17
13
  const createComponent = (props = {}, { defaultHeaderLevel = 3, accordionSetId = false } = {}) => {
18
14
  wrapper = mount(GlAccordionItem, {
19
15
  directives: {
@@ -26,10 +26,6 @@ describe('Alert component', () => {
26
26
  const findActionsContainer = () => wrapper.find('.gl-alert-actions');
27
27
  const findActionButtons = () => wrapper.findAll('.gl-alert-action');
28
28
 
29
- afterEach(() => {
30
- wrapper.destroy();
31
- });
32
-
33
29
  describe('by default', () => {
34
30
  beforeEach(() => {
35
31
  createComponent({ slots: { default: DummyComponent } });
@@ -20,8 +20,6 @@ describe('avatar labeled', () => {
20
20
  });
21
21
  };
22
22
 
23
- afterEach(() => wrapper.destroy());
24
-
25
23
  it('sets avatar alt attribute to an empty string', () => {
26
24
  const altText = 'alt text';
27
25
 
@@ -23,8 +23,6 @@ describe('avatars inline', () => {
23
23
 
24
24
  const findBadgeTooltip = () => wrapper.findComponent(GlTooltip);
25
25
 
26
- afterEach(() => wrapper.destroy());
27
-
28
26
  it('displays all avatars when component is not collapsed', () => {
29
27
  buildWrapper({ avatars, maxVisible: 1, avatarSize: 24, collapsed: false });
30
28
 
@@ -15,8 +15,6 @@ describe('badge', () => {
15
15
  });
16
16
  };
17
17
 
18
- afterEach(() => wrapper.destroy());
19
-
20
18
  describe('with "icon" prop', () => {
21
19
  describe.each`
22
20
  scenario | hasSlot | iconName | expectedRole
@@ -14,10 +14,6 @@ describe('Broadcast message component', () => {
14
14
  createComponent({ slots: { default: 'some message' } });
15
15
  });
16
16
 
17
- afterEach(() => {
18
- wrapper.destroy();
19
- });
20
-
21
17
  it('clicking on dismiss button emits a dismiss event', () => {
22
18
  findDismissButton().vm.$emit('click');
23
19
 
@@ -10,11 +10,6 @@ describe('button component', () => {
10
10
  };
11
11
  const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
12
12
 
13
- afterEach(() => {
14
- wrapper.destroy();
15
- wrapper = null;
16
- });
17
-
18
13
  it('renders a button', () => {
19
14
  buildWrapper();
20
15
 
@@ -20,11 +20,6 @@ describe('GlCard', () => {
20
20
  const findHeader = () => wrapper.find('.gl-card-header');
21
21
  const findFooter = () => wrapper.find('.gl-card-footer');
22
22
 
23
- afterEach(() => {
24
- wrapper.destroy();
25
- wrapper = null;
26
- });
27
-
28
23
  describe('with just the body content', () => {
29
24
  beforeEach(() => {
30
25
  createWrapper({
@@ -17,10 +17,6 @@ describe('Carousel component', () => {
17
17
  });
18
18
  });
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  it('renders a BCarousel component', () => {
25
21
  expect(wrapper.findComponent(BCarousel).exists()).toBe(true);
26
22
  });
@@ -17,10 +17,6 @@ describe('Collapse component', () => {
17
17
  });
18
18
  });
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  it('renders a BCollapse', () => {
25
21
  expect(wrapper.findComponent(BCollapse).exists()).toBe(true);
26
22
  });
@@ -148,10 +148,6 @@ describe('datepicker component', () => {
148
148
  clearButton = findClearButton(wrapper);
149
149
  };
150
150
 
151
- afterEach(() => {
152
- wrapper.destroy();
153
- });
154
-
155
151
  it('renders clear button', async () => {
156
152
  await setup();
157
153
 
@@ -24,11 +24,6 @@ describe('Daterange Picker', () => {
24
24
  const findStartPicker = () => wrapper.findAllComponents(Datepicker).at(0);
25
25
  const findEndPicker = () => wrapper.findAllComponents(Datepicker).at(1);
26
26
 
27
- afterEach(() => {
28
- wrapper.destroy();
29
- wrapper = null;
30
- });
31
-
32
27
  it('renders two datepickers', () => {
33
28
  factory();
34
29
  expect(findStartPicker().exists()).toBe(true);
@@ -7,10 +7,6 @@ describe('drawer component', () => {
7
7
  wrapper = shallowMount(Drawer, { propsData: props, slots });
8
8
  };
9
9
 
10
- afterEach(() => {
11
- wrapper.destroy();
12
- });
13
-
14
10
  describe('default settings', () => {
15
11
  describe('when open is true', () => {
16
12
  it('makes gl-drawer visible when open is true', () => {
@@ -24,8 +24,6 @@ describe('new dropdown', () => {
24
24
  });
25
25
  };
26
26
 
27
- afterEach(() => wrapper.destroy());
28
-
29
27
  const findByTestId = (testId) => wrapper.find(`[data-testid="${testId}"]`);
30
28
 
31
29
  const findSplitButton = () => wrapper.find('.btn:not(.gl-dropdown-toggle)');
@@ -14,8 +14,6 @@ describe('dropdown item', () => {
14
14
 
15
15
  const findCheckbox = () => wrapper.find('[data-testid="dropdown-item-checkbox"]');
16
16
 
17
- afterEach(() => wrapper.destroy());
18
-
19
17
  describe('checkbox', () => {
20
18
  it.each`
21
19
  props | shouldExist
@@ -39,11 +39,6 @@ describe('Filtered search', () => {
39
39
  });
40
40
  };
41
41
 
42
- afterEach(() => {
43
- wrapper.destroy();
44
- wrapper = null;
45
- });
46
-
47
42
  describe('value manipulation', () => {
48
43
  it('creates term when empty', () => {
49
44
  createComponent();
@@ -423,11 +418,6 @@ describe('Filtered search integration tests', () => {
423
418
  }
424
419
  });
425
420
 
426
- afterEach(() => {
427
- wrapper.destroy();
428
- wrapper = null;
429
- });
430
-
431
421
  describe('when first term is clicked', () => {
432
422
  beforeEach(async () => {
433
423
  mountComponent();
@@ -25,11 +25,6 @@ describe('Filtered search suggestion component', () => {
25
25
  });
26
26
  });
27
27
 
28
- afterEach(() => {
29
- wrapper.destroy();
30
- wrapper = null;
31
- });
32
-
33
28
  beforeAll(() => {
34
29
  if (!HTMLElement.prototype.scrollIntoView) {
35
30
  HTMLElement.prototype.scrollIntoView = jest.fn();
@@ -12,11 +12,6 @@ describe('Filtered search suggestion list component', () => {
12
12
  });
13
13
  });
14
14
 
15
- afterEach(() => {
16
- wrapper.destroy();
17
- wrapper = null;
18
- });
19
-
20
15
  it('has expected public methods', () => {
21
16
  expect(wrapper.vm.register).toBeInstanceOf(Function);
22
17
  expect(wrapper.vm.unregister).toBeInstanceOf(Function);
@@ -29,11 +29,6 @@ describe('Filtered search term', () => {
29
29
  });
30
30
  };
31
31
 
32
- afterEach(() => {
33
- wrapper.destroy();
34
- wrapper = null;
35
- });
36
-
37
32
  it('renders value in inactive mode', () => {
38
33
  createComponent({ value: { data: 'test-value' } });
39
34
  expect(wrapper.html()).toMatchSnapshot();
@@ -38,11 +38,6 @@ describe('Filtered search token', () => {
38
38
  });
39
39
  };
40
40
 
41
- afterEach(() => {
42
- wrapper.destroy();
43
- wrapper = null;
44
- });
45
-
46
41
  describe('when activated', () => {
47
42
  it('emits activate when operator segment is clicked', () => {
48
43
  createComponent();
@@ -108,11 +108,6 @@ describe('GlFormCheckboxTree', () => {
108
108
  });
109
109
  };
110
110
 
111
- afterEach(() => {
112
- wrapper.destroy();
113
- wrapper = null;
114
- });
115
-
116
111
  describe.each`
117
112
  description | shape | expected | initiallyChecked | indeterminateBoxes
118
113
  ${'non-nested'} | ${SHAPE.NO_NESTING} | ${5} | ${['1', '2', '3']} | ${[]}
@@ -48,10 +48,6 @@ describe('GlFormCombobox', () => {
48
48
  const setInput = (val) => findInput().setValue(val);
49
49
  const arrowDown = () => findInput().trigger('keydown.down');
50
50
 
51
- afterEach(() => {
52
- wrapper.destroy();
53
- });
54
-
55
51
  describe('match and filter functionality', () => {
56
52
  beforeEach(() => {
57
53
  createComponent();
@@ -10,12 +10,12 @@ export default {
10
10
  return this.name.length >= 4;
11
11
  },
12
12
  invalidFeedback() {
13
- let feedbackText = 'Please enter something';
13
+ let feedbackText = 'This field is required.';
14
14
 
15
15
  if (this.name.length > 4) {
16
16
  feedbackText = '';
17
17
  } else if (this.name.length > 0) {
18
- feedbackText = 'Enter at least 4 characters';
18
+ feedbackText = 'Enter at least 4 characters.';
19
19
  }
20
20
 
21
21
  return feedbackText;
@@ -26,7 +26,7 @@ export default {
26
26
  <template>
27
27
  <gl-form-group
28
28
  label="Name"
29
- description="Please enter your name"
29
+ description="Enter a first and last name."
30
30
  :invalid-feedback="invalidFeedback"
31
31
  :state="state"
32
32
  label-for="input1"
@@ -101,19 +101,19 @@ documentedStoriesOf('base/form/form-group', readme)
101
101
  `,
102
102
  }))
103
103
  .add('with validations', () => ({
104
- props: generateProps({ label: 'Name', description: 'Please enter your name' }),
104
+ props: generateProps({ label: 'Name', description: 'Enter a first and last name.' }),
105
105
  components,
106
106
  computed: {
107
107
  state() {
108
108
  return this.name.length >= 4;
109
109
  },
110
110
  invalidFeedback() {
111
- let feedbackText = 'Please enter something';
111
+ let feedbackText = 'This field is required.';
112
112
 
113
113
  if (this.name.length > 4) {
114
114
  feedbackText = '';
115
115
  } else if (this.name.length > 0) {
116
- feedbackText = 'Enter at least 4 characters';
116
+ feedbackText = 'Enter at least 4 characters.';
117
117
  }
118
118
 
119
119
  return feedbackText;
@@ -14,11 +14,6 @@ describe('GlFormInput', () => {
14
14
  });
15
15
  };
16
16
 
17
- afterEach(() => {
18
- wrapper.destroy();
19
- wrapper = null;
20
- });
21
-
22
17
  describe('size prop', () => {
23
18
  // Exclude the default null value
24
19
  const sizes = Object.values(formInputSizes).filter(Boolean);
@@ -12,10 +12,6 @@ describe('Input Group', () => {
12
12
  });
13
13
  };
14
14
 
15
- afterEach(() => {
16
- wrapper.destroy();
17
- });
18
-
19
15
  it('renders without errors', () => {
20
16
  createWrapper();
21
17
  expect(wrapper.findComponent(BInputGroup).exists()).toBe(true);
@@ -44,10 +44,6 @@ describe('GlFormRadio', () => {
44
44
  createWrapper();
45
45
  });
46
46
 
47
- afterEach(() => {
48
- wrapper.destroy();
49
- });
50
-
51
47
  it('checks the radio button correctly on mount', () => {
52
48
  const radio = findRadio(firstOption.value);
53
49
  expect(radio.element.checked).toBe(true);
@@ -35,10 +35,6 @@ describe('GlFormRadioGroup', () => {
35
35
  createWrapper();
36
36
  });
37
37
 
38
- afterEach(() => {
39
- wrapper.destroy();
40
- });
41
-
42
38
  it('checks the radio button correctly on mount', () => {
43
39
  const radio = findRadio(firstOption.value);
44
40
  expect(radio.element.checked).toBe(true);
@@ -15,11 +15,6 @@ describe('GlFormSelect', () => {
15
15
  });
16
16
  };
17
17
 
18
- afterEach(() => {
19
- wrapper.destroy();
20
- wrapper = null;
21
- });
22
-
23
18
  describe('state prop', () => {
24
19
  it.each`
25
20
  state | expectedClasses
@@ -13,11 +13,6 @@ describe('GlFormTextArea', () => {
13
13
  });
14
14
  };
15
15
 
16
- afterEach(() => {
17
- wrapper.destroy();
18
- wrapper = null;
19
- });
20
-
21
16
  describe('v-model', () => {
22
17
  describe('value binding', () => {
23
18
  beforeEach(() => {
@@ -29,8 +29,6 @@ describe('Icon component', () => {
29
29
  const validateName = (name) => Icon.props.name.validator(name);
30
30
 
31
31
  afterEach(() => {
32
- wrapper.destroy();
33
-
34
32
  if (consoleSpy) {
35
33
  consoleSpy.mockRestore();
36
34
  }
@@ -60,7 +60,6 @@ describe('Infinite Scroll component', () => {
60
60
 
61
61
  afterEach(() => {
62
62
  throttle.mockClear();
63
- wrapper.destroy();
64
63
  });
65
64
 
66
65
  it('emits nothing on creation', () => {
@@ -17,11 +17,6 @@ describe('GlKeysetPagination', () => {
17
17
  });
18
18
  };
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- wrapper = null;
23
- });
24
-
25
20
  const findPrevButton = () => wrapper.find('[data-testid="prevButton"]');
26
21
  const findNextButton = () => wrapper.find('[data-testid="nextButton"]');
27
22
 
@@ -35,10 +35,6 @@ describe('Label component', () => {
35
35
  });
36
36
  };
37
37
 
38
- afterEach(() => {
39
- wrapper.destroy();
40
- });
41
-
42
38
  const findLink = () => wrapper.findComponent(GlLink);
43
39
  const findTitle = () => wrapper.find('.gl-label-text');
44
40
  const findSubTitle = () => wrapper.find('.gl-label-text-scoped');
@@ -8,11 +8,6 @@ describe('link component', () => {
8
8
  wrapper = mount(Link, options);
9
9
  };
10
10
 
11
- afterEach(() => {
12
- wrapper.destroy();
13
- wrapper = null;
14
- });
15
-
16
11
  describe('default settings', () => {
17
12
  beforeEach(() => {
18
13
  createWrapper();
@@ -11,10 +11,6 @@ describe('loading icon component', () => {
11
11
  const findSpinnerEl = () => wrapper.find(`.${baseCssClass}`);
12
12
  const getSpinnerClasses = () => findSpinnerEl().classes();
13
13
 
14
- afterEach(() => {
15
- wrapper.destroy();
16
- });
17
-
18
14
  describe('display', () => {
19
15
  it('should render as a block by default', () => {
20
16
  createComponent();
@@ -59,7 +59,6 @@ describe('Modal component', () => {
59
59
  };
60
60
 
61
61
  afterEach(() => {
62
- wrapper.destroy();
63
62
  jest.clearAllMocks();
64
63
  });
65
64
 
@@ -5,10 +5,6 @@ import GlNavItem from './nav_item.vue';
5
5
  describe('GlNav', () => {
6
6
  let wrapper;
7
7
 
8
- afterEach(() => {
9
- wrapper.destroy();
10
- });
11
-
12
8
  describe('Nav style', () => {
13
9
  it('renders slot content', () => {
14
10
  wrapper = shallowMount(GlNav, {
@@ -4,10 +4,6 @@ import GlNavItem from './nav_item.vue';
4
4
  describe('GlNavItem', () => {
5
5
  let wrapper;
6
6
 
7
- afterEach(() => {
8
- wrapper.destroy();
9
- });
10
-
11
7
  it('renders the text', () => {
12
8
  wrapper = shallowMount(GlNavItem, {
13
9
  slots: {
@@ -18,10 +18,6 @@ describe('GlNavItemDropdown', () => {
18
18
 
19
19
  const findBNavItemDropdown = () => wrapper.findComponent(BNavItemDropdown);
20
20
 
21
- afterEach(() => {
22
- wrapper.destroy();
23
- });
24
-
25
21
  describe('default', () => {
26
22
  it('renders BNavItemDropdown', () => {
27
23
  const expectedText = 'Hello!';
@@ -15,12 +15,6 @@ describe('Paginated List', () => {
15
15
  `;
16
16
  });
17
17
 
18
- afterEach(() => {
19
- wrapper.destroy();
20
-
21
- wrapper = null;
22
- });
23
-
24
18
  const createComponent = (props = {}) => {
25
19
  wrapper = shallowMount(PaginatedList, {
26
20
  scopedSlots: {
@@ -35,7 +35,6 @@ describe('pagination component', () => {
35
35
  };
36
36
 
37
37
  afterEach(() => {
38
- wrapper.destroy();
39
38
  debounce.mockClear();
40
39
  });
41
40
 
@@ -44,11 +44,6 @@ describe('Path', () => {
44
44
  wrapper = createComponent();
45
45
  });
46
46
 
47
- afterEach(() => {
48
- wrapper.destroy();
49
- wrapper = null;
50
- });
51
-
52
47
  it('matches the snapshot', () => {
53
48
  expect(wrapper.element).toMatchSnapshot();
54
49
  });
@@ -16,11 +16,6 @@ describe('GlPopover', () => {
16
16
 
17
17
  const findBVPopover = () => wrapper.findComponent({ ref: 'bPopover' });
18
18
 
19
- afterEach(() => {
20
- wrapper.destroy();
21
- wrapper = null;
22
- });
23
-
24
19
  it.each(tooltipActionEvents)('passes through the %s event to the bvPopover instance', (event) => {
25
20
  createWrapper();
26
21
  wrapper.vm.$emit(event);
@@ -30,10 +30,6 @@ describe('search box by click component', () => {
30
30
 
31
31
  const findClearIcon = () => wrapper.findComponent(ClearIcon);
32
32
 
33
- afterEach(() => {
34
- wrapper.destroy();
35
- });
36
-
37
33
  it('emits input event when input changes', async () => {
38
34
  createComponent({ value: 'somevalue' });
39
35