From 90f6c04078decbdbe4cb7c190cd1c51d3b6ec45c Mon Sep 17 00:00:00 2001
From: Andrew Fontaine <afontaine@gitlab.com>
Date: Fri, 17 Feb 2023 14:16:30 -0500
Subject: [PATCH] Explicitly pass name to createMockDirective

Vue 3 does not expose the name of the directive on the binding, so we
must explicitly pass a name to createMockDirective when setting up a
mock.

This is to assist with the slow migration to Vue 3.
---
 .../devops_adoption_add_dropdown_spec.js      |  2 +-
 .../devops_adoption_overview_table_spec.js    |  4 +--
 .../devops_adoption_table_cell_flag_spec.js   |  2 +-
 .../components/devops_adoption_table_spec.js  |  2 +-
 .../components/hidden_groups_item_spec.js     |  2 +-
 .../runner_upgrade_status_icon_spec.js        |  2 +-
 .../stat/runner_performance_stat_spec.js      |  2 +-
 .../components/sidebar/issue_field_spec.js    |  2 +-
 .../geo_replicable_filter_bar_spec.js         |  2 +-
 .../components/table_actions_spec.js          |  2 +-
 .../zentao_issues_show_root_spec.js           |  2 +-
 .../oncall_schedule_wrapper_spec.js           |  2 +-
 .../components/rotations_list_section_spec.js |  2 +-
 .../components/issue_health_status_spec.js    |  2 +-
 .../milestones_list_section_spec.js           |  2 +-
 .../components/dast_profiles_list_spec.js     |  2 +-
 .../components/dast_scan_schedule_spec.js     |  2 +-
 .../dast_profile_summary_card_spec.js         |  2 +-
 .../components/tooltip_icon_spec.js           |  2 +-
 .../shared/filters/filter_item_spec.js        |  2 +-
 .../shared/filters/image_filter_spec.js       |  2 +-
 .../security_reports/severity_badge_spec.js   |  2 +-
 .../vulnerabilities/issue_link_spec.js        |  2 +-
 .../__helpers__/vue_mock_directive.js         | 32 ++++++++++++-------
 .../topics/components/remove_avatar_spec.js   |  2 +-
 .../users/components/user_actions_spec.js     |  2 +-
 .../users/components/user_avatar_spec.js      |  2 +-
 .../components/alert_management_table_spec.js |  2 +-
 spec/frontend/boards/board_card_inner_spec.js |  2 +-
 .../board_add_new_column_trigger_spec.js      |  2 +-
 .../components/board_settings_sidebar_spec.js |  2 +-
 .../boards/components/toggle_focus_spec.js    |  2 +-
 .../components/delete_merged_branches_spec.js |  2 +-
 .../components/file-tree/container_spec.js    |  2 +-
 .../admin_new_runner_app_spec.js              |  2 +-
 .../cells/runner_owner_cell_spec.js           |  2 +-
 .../cells/runner_summary_field_spec.js        |  2 +-
 ...stration_token_reset_dropdown_item_spec.js |  2 +-
 .../components/runner_bulk_delete_spec.js     |  2 +-
 .../components/runner_delete_button_spec.js   |  4 +--
 .../components/runner_edit_button_spec.js     |  2 +-
 .../runner_list_empty_state_spec.js           |  2 +-
 .../components/runner_pause_button_spec.js    |  2 +-
 .../components/runner_paused_badge_spec.js    |  2 +-
 .../components/runner_status_badge_spec.js    |  2 +-
 .../ci/runner/components/runner_tag_spec.js   |  4 +--
 .../components/runner_type_badge_spec.js      |  2 +-
 .../components/create_token_button_spec.js    |  2 +-
 .../components/clusters_actions_spec.js       |  2 +-
 .../components/delete_agent_button_spec.js    |  2 +-
 .../environments/canary_ingress_spec.js       |  2 +-
 .../environments/environment_actions_spec.js  |  2 +-
 .../environments_detail_header_spec.js        |  2 +-
 .../components/commit_sidebar/form_spec.js    |  2 +-
 .../new_merge_request_option_spec.js          |  2 +-
 .../commit_sidebar/radio_group_spec.js        |  2 +-
 .../ide/components/ide_sidebar_nav_spec.js    |  2 +-
 .../components/import_table_spec.js           |  2 +-
 .../csv_import_export_buttons_spec.js         |  2 +-
 .../issuable_header_warnings_spec.js          |  2 +-
 .../issues/show/components/app_spec.js        |  2 +-
 .../components/add_namespace_button_spec.js   |  2 +-
 .../approve_access_request_button_spec.js     |  2 +-
 .../remove_group_link_button_spec.js          |  2 +-
 .../remove_member_button_spec.js              |  2 +-
 .../resend_invite_button_spec.js              |  2 +-
 .../leave_group_dropdown_item_spec.js         |  2 +-
 .../user_action_dropdown_spec.js              |  2 +-
 .../components/table/member_source_spec.js    |  2 +-
 .../nav/components/responsive_header_spec.js  |  2 +-
 .../nav/components/responsive_home_spec.js    |  2 +-
 .../components/notifications_dropdown_spec.js |  2 +-
 .../details_page/details_header_spec.js       |  2 +-
 .../details_page/tags_list_row_spec.js        |  2 +-
 .../list_page/image_list_row_spec.js          |  2 +-
 .../shared/package_list_row_spec.js           |  2 +-
 .../components/details/package_title_spec.js  |  2 +-
 .../components/details/version_row_spec.js    |  2 +-
 .../components/list/package_list_row_spec.js  |  2 +-
 .../shared/components/package_path_spec.js    |  2 +-
 .../jobs/index/components/cancel_jobs_spec.js |  4 +--
 .../linked_pipelines_mini_list_spec.js        |  2 +-
 .../pipelines/pipeline_triggerer_spec.js      |  2 +-
 .../prune_unreachable_objects_button_spec.js  |  2 +-
 .../repository/branch_rules/app_spec.js       |  2 +-
 .../repository/components/table/row_spec.js   |  2 +-
 .../components/training_provider_list_spec.js |  2 +-
 .../sidebar_escalation_status_spec.js         |  2 +-
 .../dropdown_value_collapsed_spec.js          |  2 +-
 .../lock/issuable_lock_form_spec.js           |  2 +-
 .../sidebar_dropdown_widget_spec.js           |  2 +-
 .../time_tracking/time_tracker_spec.js        |  2 +-
 .../terraform/components/states_table_spec.js |  2 +-
 .../form/input_copy_toggle_visibility_spec.js |  2 +-
 .../markdown/suggestion_diff_header_spec.js   |  2 +-
 .../components/registry/metadata_item_spec.js |  2 +-
 .../runner_instructions_spec.js               |  2 +-
 .../components/tooltip_on_truncate_spec.js    |  8 ++---
 .../show/components/issuable_title_spec.js    |  2 +-
 .../frontend/whats_new/components/app_spec.js |  2 +-
 .../components/work_item_type_icon_spec.js    |  2 +-
 101 files changed, 127 insertions(+), 119 deletions(-)

diff --git a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_add_dropdown_spec.js b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_add_dropdown_spec.js
index cd13de5197a5a..f1cac7dd72105 100644
--- a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_add_dropdown_spec.js
+++ b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_add_dropdown_spec.js
@@ -65,7 +65,7 @@ describe('DevopsAdoptionAddDropdown', () => {
       },
       provide,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         GlDropdown,
diff --git a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_overview_table_spec.js b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_overview_table_spec.js
index 944ce8e2f8a5a..ad32fa44cfed0 100644
--- a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_overview_table_spec.js
+++ b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_overview_table_spec.js
@@ -27,8 +27,8 @@ describe('DevopsAdoptionOverviewTable', () => {
       },
       provide,
       directives: {
-        GlTooltip: createMockDirective(),
-        GlModal: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
+        GlModal: createMockDirective('gl-modal'),
       },
     });
   };
diff --git a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_cell_flag_spec.js b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_cell_flag_spec.js
index 8da7e12a321d7..0414c73fce713 100644
--- a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_cell_flag_spec.js
+++ b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_cell_flag_spec.js
@@ -13,7 +13,7 @@ describe('DevopsAdoptionTableCellFlag', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_spec.js b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_spec.js
index c3d86edbc20c4..5848b229c7ddb 100644
--- a/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_spec.js
+++ b/ee/spec/frontend/analytics/devops_reports/devops_adoption/components/devops_adoption_table_spec.js
@@ -26,7 +26,7 @@ describe('DevopsAdoptionTable', () => {
       },
       provide,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/approvals/components/hidden_groups_item_spec.js b/ee/spec/frontend/approvals/components/hidden_groups_item_spec.js
index 0b027f5b6fd4e..33dd6368c12e0 100644
--- a/ee/spec/frontend/approvals/components/hidden_groups_item_spec.js
+++ b/ee/spec/frontend/approvals/components/hidden_groups_item_spec.js
@@ -16,7 +16,7 @@ describe('Approvals HiddenGroupsItem', () => {
       shallowMount(HiddenGroupsItem, {
         ...options,
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/ee/spec/frontend/ci/runner/components/runner_upgrade_status_icon_spec.js b/ee/spec/frontend/ci/runner/components/runner_upgrade_status_icon_spec.js
index aa32b2f206ed2..d6dda2804da48 100644
--- a/ee/spec/frontend/ci/runner/components/runner_upgrade_status_icon_spec.js
+++ b/ee/spec/frontend/ci/runner/components/runner_upgrade_status_icon_spec.js
@@ -26,7 +26,7 @@ describe('RunnerUpgradeStatusIcon', () => {
         },
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       provide: {
         glFeatures,
diff --git a/ee/spec/frontend/ci/runner/components/stat/runner_performance_stat_spec.js b/ee/spec/frontend/ci/runner/components/stat/runner_performance_stat_spec.js
index 2659d3e5089eb..d689c3dcb566a 100644
--- a/ee/spec/frontend/ci/runner/components/stat/runner_performance_stat_spec.js
+++ b/ee/spec/frontend/ci/runner/components/stat/runner_performance_stat_spec.js
@@ -18,7 +18,7 @@ describe('RunnerPerformanceStat', () => {
         ...props,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       ...options,
     });
diff --git a/ee/spec/frontend/external_issues_show/components/sidebar/issue_field_spec.js b/ee/spec/frontend/external_issues_show/components/sidebar/issue_field_spec.js
index 2623b1fb34846..d47d64d8ddc79 100644
--- a/ee/spec/frontend/external_issues_show/components/sidebar/issue_field_spec.js
+++ b/ee/spec/frontend/external_issues_show/components/sidebar/issue_field_spec.js
@@ -18,7 +18,7 @@ describe('IssueField', () => {
   const createComponent = ({ props = {}, provide = {} } = {}) => {
     wrapper = shallowMountExtended(IssueField, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: { ...defaultProps, ...props },
       stubs: {
diff --git a/ee/spec/frontend/geo_replicable/components/geo_replicable_filter_bar_spec.js b/ee/spec/frontend/geo_replicable/components/geo_replicable_filter_bar_spec.js
index 86320ff98a46b..e509b00faa334 100644
--- a/ee/spec/frontend/geo_replicable/components/geo_replicable_filter_bar_spec.js
+++ b/ee/spec/frontend/geo_replicable/components/geo_replicable_filter_bar_spec.js
@@ -28,7 +28,7 @@ describe('GeoReplicableFilterBar', () => {
     wrapper = shallowMount(GeoReplicableFilterBar, {
       store: fakeStore,
       directives: {
-        GlModalDirective: createMockDirective(),
+        GlModalDirective: createMockDirective('gl-modal-directive'),
       },
     });
   };
diff --git a/ee/spec/frontend/groups/settings/compliance_frameworks/components/table_actions_spec.js b/ee/spec/frontend/groups/settings/compliance_frameworks/components/table_actions_spec.js
index bc79ac754ca7a..a75bd434c8b4a 100644
--- a/ee/spec/frontend/groups/settings/compliance_frameworks/components/table_actions_spec.js
+++ b/ee/spec/frontend/groups/settings/compliance_frameworks/components/table_actions_spec.js
@@ -31,7 +31,7 @@ describe('TableActions', () => {
           ...props,
         },
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/ee/spec/frontend/integrations/zentao/issues_show/components/zentao_issues_show_root_spec.js b/ee/spec/frontend/integrations/zentao/issues_show/components/zentao_issues_show_root_spec.js
index f7f02b5ff161c..b96611835a6eb 100644
--- a/ee/spec/frontend/integrations/zentao/issues_show/components/zentao_issues_show_root_spec.js
+++ b/ee/spec/frontend/integrations/zentao/issues_show/components/zentao_issues_show_root_spec.js
@@ -31,7 +31,7 @@ describe('ZentaoIssuesShow', () => {
   const createComponent = () => {
     wrapper = shallowMountExtended(ZentaoIssuesShow, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         IssuableHeader,
diff --git a/ee/spec/frontend/oncall_schedule/oncall_schedule_wrapper_spec.js b/ee/spec/frontend/oncall_schedule/oncall_schedule_wrapper_spec.js
index a14b75075e016..030bbaf49bf50 100644
--- a/ee/spec/frontend/oncall_schedule/oncall_schedule_wrapper_spec.js
+++ b/ee/spec/frontend/oncall_schedule/oncall_schedule_wrapper_spec.js
@@ -52,7 +52,7 @@ describe('On-call schedule wrapper', () => {
         accessLevelDescriptionPath,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       mocks: { $apollo },
       stubs: {
diff --git a/ee/spec/frontend/oncall_schedule/schedule/components/rotations_list_section_spec.js b/ee/spec/frontend/oncall_schedule/schedule/components/rotations_list_section_spec.js
index 3b330c1626ceb..6efe4fe1da666 100644
--- a/ee/spec/frontend/oncall_schedule/schedule/components/rotations_list_section_spec.js
+++ b/ee/spec/frontend/oncall_schedule/schedule/components/rotations_list_section_spec.js
@@ -38,7 +38,7 @@ describe('RotationsListSectionComponent', () => {
           GlCard,
         },
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/ee/spec/frontend/related_items_tree/components/issue_health_status_spec.js b/ee/spec/frontend/related_items_tree/components/issue_health_status_spec.js
index cd096b2c677f9..f655cef50ccb0 100644
--- a/ee/spec/frontend/related_items_tree/components/issue_health_status_spec.js
+++ b/ee/spec/frontend/related_items_tree/components/issue_health_status_spec.js
@@ -15,7 +15,7 @@ describe('IssueHealthStatus', () => {
   const createComponent = () =>
     shallowMountExtended(IssueHealthStatus, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         healthStatus,
diff --git a/ee/spec/frontend/roadmap/components/milestones_list_section_spec.js b/ee/spec/frontend/roadmap/components/milestones_list_section_spec.js
index b3dc82f975fb1..aef2a4cdd4950 100644
--- a/ee/spec/frontend/roadmap/components/milestones_list_section_spec.js
+++ b/ee/spec/frontend/roadmap/components/milestones_list_section_spec.js
@@ -70,7 +70,7 @@ describe('MilestonesListSectionComponent', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/security_configuration/dast_profiles/components/dast_profiles_list_spec.js b/ee/spec/frontend/security_configuration/dast_profiles/components/dast_profiles_list_spec.js
index 80dc65ad9c4ff..a28b7fe8a0fb0 100644
--- a/ee/spec/frontend/security_configuration/dast_profiles/components/dast_profiles_list_spec.js
+++ b/ee/spec/frontend/security_configuration/dast_profiles/components/dast_profiles_list_spec.js
@@ -35,7 +35,7 @@ describe('EE - DastProfilesList', () => {
         options,
         {
           directives: {
-            GlTooltip: createMockDirective(),
+            GlTooltip: createMockDirective('gl-tooltip'),
           },
         },
       ),
diff --git a/ee/spec/frontend/security_configuration/dast_profiles/components/dast_scan_schedule_spec.js b/ee/spec/frontend/security_configuration/dast_profiles/components/dast_scan_schedule_spec.js
index d37419c266a70..f61d6199415dc 100644
--- a/ee/spec/frontend/security_configuration/dast_profiles/components/dast_scan_schedule_spec.js
+++ b/ee/spec/frontend/security_configuration/dast_profiles/components/dast_scan_schedule_spec.js
@@ -15,7 +15,7 @@ describe('EE - DastScanSchedule', () => {
         schedule,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/security_configuration/dast_profiles/dast_profile_selector/dast_profile_summary_card_spec.js b/ee/spec/frontend/security_configuration/dast_profiles/dast_profile_selector/dast_profile_summary_card_spec.js
index 71abf124de316..71b670afecddf 100644
--- a/ee/spec/frontend/security_configuration/dast_profiles/dast_profile_selector/dast_profile_summary_card_spec.js
+++ b/ee/spec/frontend/security_configuration/dast_profiles/dast_profile_selector/dast_profile_summary_card_spec.js
@@ -18,7 +18,7 @@ describe('DastProfileSummaryCard', () => {
       propsData,
       stubs: { GlCard },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       ...options,
     });
diff --git a/ee/spec/frontend/security_configuration/dast_profiles/dast_scanner_profiles_form/components/tooltip_icon_spec.js b/ee/spec/frontend/security_configuration/dast_profiles/dast_scanner_profiles_form/components/tooltip_icon_spec.js
index 941f4955d2f6f..054d71a7a6875 100644
--- a/ee/spec/frontend/security_configuration/dast_profiles/dast_scanner_profiles_form/components/tooltip_icon_spec.js
+++ b/ee/spec/frontend/security_configuration/dast_profiles/dast_scanner_profiles_form/components/tooltip_icon_spec.js
@@ -16,7 +16,7 @@ describe('Tooltip Icon', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/security_dashboard/components/shared/filters/filter_item_spec.js b/ee/spec/frontend/security_dashboard/components/shared/filters/filter_item_spec.js
index dee218701ff25..af478dbdad4ae 100644
--- a/ee/spec/frontend/security_dashboard/components/shared/filters/filter_item_spec.js
+++ b/ee/spec/frontend/security_dashboard/components/shared/filters/filter_item_spec.js
@@ -16,7 +16,7 @@ describe('Filter Item component', () => {
       propsData: { ...defaultProps, ...props },
       slots: { default: slotContent },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/security_dashboard/components/shared/filters/image_filter_spec.js b/ee/spec/frontend/security_dashboard/components/shared/filters/image_filter_spec.js
index e393ef738644f..505e07587b3f6 100644
--- a/ee/spec/frontend/security_dashboard/components/shared/filters/image_filter_spec.js
+++ b/ee/spec/frontend/security_dashboard/components/shared/filters/image_filter_spec.js
@@ -40,7 +40,7 @@ describe('ImageFilter component', () => {
         [projectImagesQuery, projectQueryResolver],
       ]),
       provide: { projectFullPath, ...provide },
-      directives: { GlTooltip: createMockDirective() },
+      directives: { GlTooltip: createMockDirective('gl-tooltip') },
       stubs: { QuerystringSync: true },
     });
   };
diff --git a/ee/spec/frontend/vue_shared/components/security_reports/severity_badge_spec.js b/ee/spec/frontend/vue_shared/components/security_reports/severity_badge_spec.js
index 26a4fa051d618..b3dac1fb9273e 100644
--- a/ee/spec/frontend/vue_shared/components/security_reports/severity_badge_spec.js
+++ b/ee/spec/frontend/vue_shared/components/security_reports/severity_badge_spec.js
@@ -16,7 +16,7 @@ describe('Severity Badge', () => {
     wrapper = shallowMount(SeverityBadge, {
       propsData: { ...propsData },
       directives: {
-        tooltip: createMockDirective(),
+        tooltip: createMockDirective('tooltip'),
       },
     });
   };
diff --git a/ee/spec/frontend/vulnerabilities/issue_link_spec.js b/ee/spec/frontend/vulnerabilities/issue_link_spec.js
index 1941979167492..ce9499b12548d 100644
--- a/ee/spec/frontend/vulnerabilities/issue_link_spec.js
+++ b/ee/spec/frontend/vulnerabilities/issue_link_spec.js
@@ -19,7 +19,7 @@ describe('IssueLink component', () => {
       shallowMount(IssueLink, {
         propsData,
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
         // this allows us to retrieve the rendered text
         stubs: { GlSprintf },
diff --git a/spec/frontend/__helpers__/vue_mock_directive.js b/spec/frontend/__helpers__/vue_mock_directive.js
index e952f258c4de2..e7a2aa7f10d68 100644
--- a/spec/frontend/__helpers__/vue_mock_directive.js
+++ b/spec/frontend/__helpers__/vue_mock_directive.js
@@ -2,7 +2,7 @@ export const getKey = (name) => `$_gl_jest_${name}`;
 
 export const getBinding = (el, name) => el[getKey(name)];
 
-const writeBindingToElement = (el, { name, value, arg, modifiers }) => {
+const writeBindingToElement = (el, name, { value, arg, modifiers }) => {
   el[getKey(name)] = {
     value,
     arg,
@@ -10,16 +10,24 @@ const writeBindingToElement = (el, { name, value, arg, modifiers }) => {
   };
 };
 
-export const createMockDirective = () => ({
-  bind(el, binding) {
-    writeBindingToElement(el, binding);
-  },
+export const createMockDirective = (name) => {
+  if (!name) {
+    throw new Error(
+      'Vue 3 no longer passes the name of the directive to its hooks, an explicit name is required',
+    );
+  }
 
-  update(el, binding) {
-    writeBindingToElement(el, binding);
-  },
+  return {
+    bind(el, binding) {
+      writeBindingToElement(el, name, binding);
+    },
 
-  unbind(el, { name }) {
-    delete el[getKey(name)];
-  },
-});
+    update(el, binding) {
+      writeBindingToElement(el, name, binding);
+    },
+
+    unbind(el) {
+      delete el[getKey(name)];
+    },
+  };
+};
diff --git a/spec/frontend/admin/topics/components/remove_avatar_spec.js b/spec/frontend/admin/topics/components/remove_avatar_spec.js
index 97d257c682cd1..f058eef3a3a9c 100644
--- a/spec/frontend/admin/topics/components/remove_avatar_spec.js
+++ b/spec/frontend/admin/topics/components/remove_avatar_spec.js
@@ -20,7 +20,7 @@ describe('RemoveAvatar', () => {
         name,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       stubs: {
         GlSprintf,
diff --git a/spec/frontend/admin/users/components/user_actions_spec.js b/spec/frontend/admin/users/components/user_actions_spec.js
index 1b080b05c95bb..84966998e82db 100644
--- a/spec/frontend/admin/users/components/user_actions_spec.js
+++ b/spec/frontend/admin/users/components/user_actions_spec.js
@@ -32,7 +32,7 @@ describe('AdminUserActions component', () => {
         showButtonLabels,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/admin/users/components/user_avatar_spec.js b/spec/frontend/admin/users/components/user_avatar_spec.js
index 94fac875fbe35..dc1770daee59a 100644
--- a/spec/frontend/admin/users/components/user_avatar_spec.js
+++ b/spec/frontend/admin/users/components/user_avatar_spec.js
@@ -26,7 +26,7 @@ describe('AdminUserAvatar component', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         GlAvatarLabeled,
diff --git a/spec/frontend/alert_management/components/alert_management_table_spec.js b/spec/frontend/alert_management/components/alert_management_table_spec.js
index 7fb4f2d246389..3f709d8c9f5c1 100644
--- a/spec/frontend/alert_management/components/alert_management_table_spec.js
+++ b/spec/frontend/alert_management/components/alert_management_table_spec.js
@@ -68,7 +68,7 @@ describe('AlertManagementTable', () => {
         },
         stubs,
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/spec/frontend/boards/board_card_inner_spec.js b/spec/frontend/boards/board_card_inner_spec.js
index 1e823e3321a45..a9342af0c965c 100644
--- a/spec/frontend/boards/board_card_inner_spec.js
+++ b/spec/frontend/boards/board_card_inner_spec.js
@@ -84,7 +84,7 @@ describe('Board card component', () => {
         BoardCardMoveToPosition: true,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       provide: {
         rootPath: '/',
diff --git a/spec/frontend/boards/components/board_add_new_column_trigger_spec.js b/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
index 354eb7bff16ad..f42b1325548dd 100644
--- a/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
+++ b/spec/frontend/boards/components/board_add_new_column_trigger_spec.js
@@ -17,7 +17,7 @@ describe('BoardAddNewColumnTrigger', () => {
   const mountComponent = () => {
     wrapper = mountExtended(BoardAddNewColumnTrigger, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       store: createStore(),
     });
diff --git a/spec/frontend/boards/components/board_settings_sidebar_spec.js b/spec/frontend/boards/components/board_settings_sidebar_spec.js
index 7d602042685b7..f4ecbbbed1c8d 100644
--- a/spec/frontend/boards/components/board_settings_sidebar_spec.js
+++ b/spec/frontend/boards/components/board_settings_sidebar_spec.js
@@ -48,7 +48,7 @@ describe('BoardSettingsSidebar', () => {
           isIssueBoard: true,
         },
         directives: {
-          GlModal: createMockDirective(),
+          GlModal: createMockDirective('gl-modal'),
         },
         stubs: {
           GlDrawer: stubComponent(GlDrawer, {
diff --git a/spec/frontend/boards/components/toggle_focus_spec.js b/spec/frontend/boards/components/toggle_focus_spec.js
index 3cbaac91f8dc1..a3d58fa05fd97 100644
--- a/spec/frontend/boards/components/toggle_focus_spec.js
+++ b/spec/frontend/boards/components/toggle_focus_spec.js
@@ -10,7 +10,7 @@ describe('ToggleFocus', () => {
   const createComponent = () => {
     wrapper = shallowMountExtended(ToggleFocus, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       attachTo: document.body,
     });
diff --git a/spec/frontend/branches/components/delete_merged_branches_spec.js b/spec/frontend/branches/components/delete_merged_branches_spec.js
index 4f1e772f4a4b9..274962fd36416 100644
--- a/spec/frontend/branches/components/delete_merged_branches_spec.js
+++ b/spec/frontend/branches/components/delete_merged_branches_spec.js
@@ -27,7 +27,7 @@ const createComponent = (mountFn = shallowMountExtended, stubs = {}) => {
       ...propsDataMock,
     },
     directives: {
-      GlTooltip: createMockDirective(),
+      GlTooltip: createMockDirective('gl-tooltip'),
     },
     stubs,
   });
diff --git a/spec/frontend/ci/pipeline_editor/components/file-tree/container_spec.js b/spec/frontend/ci/pipeline_editor/components/file-tree/container_spec.js
index 11ba517e0eb9e..e030412f2f5cb 100644
--- a/spec/frontend/ci/pipeline_editor/components/file-tree/container_spec.js
+++ b/spec/frontend/ci/pipeline_editor/components/file-tree/container_spec.js
@@ -22,7 +22,7 @@ describe('Pipeline editor file nav', () => {
           includes,
         },
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
         stubs,
       }),
diff --git a/spec/frontend/ci/runner/admin_new_runner_app/admin_new_runner_app_spec.js b/spec/frontend/ci/runner/admin_new_runner_app/admin_new_runner_app_spec.js
index edf3d1706ccfb..dd7b0796f6e34 100644
--- a/spec/frontend/ci/runner/admin_new_runner_app/admin_new_runner_app_spec.js
+++ b/spec/frontend/ci/runner/admin_new_runner_app/admin_new_runner_app_spec.js
@@ -29,7 +29,7 @@ describe('AdminNewRunnerApp', () => {
         ...props,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       stubs: {
         GlSprintf,
diff --git a/spec/frontend/ci/runner/components/cells/runner_owner_cell_spec.js b/spec/frontend/ci/runner/components/cells/runner_owner_cell_spec.js
index 3097e43e58318..588d438b48402 100644
--- a/spec/frontend/ci/runner/components/cells/runner_owner_cell_spec.js
+++ b/spec/frontend/ci/runner/components/cells/runner_owner_cell_spec.js
@@ -16,7 +16,7 @@ describe('RunnerOwnerCell', () => {
   const createComponent = ({ runner } = {}) => {
     wrapper = shallowMount(RunnerOwnerCell, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         runner,
diff --git a/spec/frontend/ci/runner/components/cells/runner_summary_field_spec.js b/spec/frontend/ci/runner/components/cells/runner_summary_field_spec.js
index f536e0dcbcf66..a5047e51f9f29 100644
--- a/spec/frontend/ci/runner/components/cells/runner_summary_field_spec.js
+++ b/spec/frontend/ci/runner/components/cells/runner_summary_field_spec.js
@@ -17,7 +17,7 @@ describe('RunnerSummaryField', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       ...options,
     });
diff --git a/spec/frontend/ci/runner/components/registration/registration_token_reset_dropdown_item_spec.js b/spec/frontend/ci/runner/components/registration/registration_token_reset_dropdown_item_spec.js
index 783a4d9252ab6..71e54e3437256 100644
--- a/spec/frontend/ci/runner/components/registration/registration_token_reset_dropdown_item_spec.js
+++ b/spec/frontend/ci/runner/components/registration/registration_token_reset_dropdown_item_spec.js
@@ -43,7 +43,7 @@ describe('RegistrationTokenResetDropdownItem', () => {
         [runnersRegistrationTokenResetMutation, runnersRegistrationTokenResetMutationHandler],
       ]),
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
     });
 
diff --git a/spec/frontend/ci/runner/components/runner_bulk_delete_spec.js b/spec/frontend/ci/runner/components/runner_bulk_delete_spec.js
index 0dc5a90fb834c..05ceed931bd0e 100644
--- a/spec/frontend/ci/runner/components/runner_bulk_delete_spec.js
+++ b/spec/frontend/ci/runner/components/runner_bulk_delete_spec.js
@@ -51,7 +51,7 @@ describe('RunnerBulkDelete', () => {
         runners: mockRunners,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         GlSprintf,
diff --git a/spec/frontend/ci/runner/components/runner_delete_button_spec.js b/spec/frontend/ci/runner/components/runner_delete_button_spec.js
index 02960ad427e3f..a97c9902cebf0 100644
--- a/spec/frontend/ci/runner/components/runner_delete_button_spec.js
+++ b/spec/frontend/ci/runner/components/runner_delete_button_spec.js
@@ -53,8 +53,8 @@ describe('RunnerDeleteButton', () => {
       },
       apolloProvider,
       directives: {
-        GlTooltip: createMockDirective(),
-        GlModal: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
+        GlModal: createMockDirective('gl-modal'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_edit_button_spec.js b/spec/frontend/ci/runner/components/runner_edit_button_spec.js
index 907cdc9010046..16586dc46d586 100644
--- a/spec/frontend/ci/runner/components/runner_edit_button_spec.js
+++ b/spec/frontend/ci/runner/components/runner_edit_button_spec.js
@@ -11,7 +11,7 @@ describe('RunnerEditButton', () => {
     wrapper = mountFn(RunnerEditButton, {
       attrs,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_list_empty_state_spec.js b/spec/frontend/ci/runner/components/runner_list_empty_state_spec.js
index 6aea3ddf58c5b..9dd6577a16614 100644
--- a/spec/frontend/ci/runner/components/runner_list_empty_state_spec.js
+++ b/spec/frontend/ci/runner/components/runner_list_empty_state_spec.js
@@ -31,7 +31,7 @@ describe('RunnerListEmptyState', () => {
         ...props,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       stubs: {
         GlEmptyState,
diff --git a/spec/frontend/ci/runner/components/runner_pause_button_spec.js b/spec/frontend/ci/runner/components/runner_pause_button_spec.js
index 12680e01b98f7..dc9925f153b6f 100644
--- a/spec/frontend/ci/runner/components/runner_pause_button_spec.js
+++ b/spec/frontend/ci/runner/components/runner_pause_button_spec.js
@@ -46,7 +46,7 @@ describe('RunnerPauseButton', () => {
       },
       apolloProvider: createMockApollo([[runnerToggleActiveMutation, runnerToggleActiveHandler]]),
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_paused_badge_spec.js b/spec/frontend/ci/runner/components/runner_paused_badge_spec.js
index b051ebe99a7de..879597ce44d02 100644
--- a/spec/frontend/ci/runner/components/runner_paused_badge_spec.js
+++ b/spec/frontend/ci/runner/components/runner_paused_badge_spec.js
@@ -16,7 +16,7 @@ describe('RunnerTypeBadge', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_status_badge_spec.js b/spec/frontend/ci/runner/components/runner_status_badge_spec.js
index 45b410df2d40e..8cde6369d4873 100644
--- a/spec/frontend/ci/runner/components/runner_status_badge_spec.js
+++ b/spec/frontend/ci/runner/components/runner_status_badge_spec.js
@@ -31,7 +31,7 @@ describe('RunnerTypeBadge', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_tag_spec.js b/spec/frontend/ci/runner/components/runner_tag_spec.js
index 7bcb046ae43c4..59bfe1585e95f 100644
--- a/spec/frontend/ci/runner/components/runner_tag_spec.js
+++ b/spec/frontend/ci/runner/components/runner_tag_spec.js
@@ -29,8 +29,8 @@ describe('RunnerTag', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
-        GlResizeObserver: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
+        GlResizeObserver: createMockDirective('gl-resize-observer'),
       },
     });
   };
diff --git a/spec/frontend/ci/runner/components/runner_type_badge_spec.js b/spec/frontend/ci/runner/components/runner_type_badge_spec.js
index 58f0936275909..acf9486064ff2 100644
--- a/spec/frontend/ci/runner/components/runner_type_badge_spec.js
+++ b/spec/frontend/ci/runner/components/runner_type_badge_spec.js
@@ -23,7 +23,7 @@ describe('RunnerTypeBadge', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/clusters/agents/components/create_token_button_spec.js b/spec/frontend/clusters/agents/components/create_token_button_spec.js
index 73856b74a8dd6..aadd11e9b5fdc 100644
--- a/spec/frontend/clusters/agents/components/create_token_button_spec.js
+++ b/spec/frontend/clusters/agents/components/create_token_button_spec.js
@@ -21,7 +21,7 @@ describe('CreateTokenButton', () => {
         ...provideData,
       },
       directives: {
-        GlModalDirective: createMockDirective(),
+        GlModalDirective: createMockDirective('gl-modal-directive'),
       },
       stubs: {
         GlTooltip,
diff --git a/spec/frontend/clusters_list/components/clusters_actions_spec.js b/spec/frontend/clusters_list/components/clusters_actions_spec.js
index f4ee3f93cb54e..7c0157c473ba8 100644
--- a/spec/frontend/clusters_list/components/clusters_actions_spec.js
+++ b/spec/frontend/clusters_list/components/clusters_actions_spec.js
@@ -35,7 +35,7 @@ describe('ClustersActionsComponent', () => {
         ...provideData,
       },
       directives: {
-        GlModalDirective: createMockDirective(),
+        GlModalDirective: createMockDirective('gl-modal-directive'),
       },
     });
   };
diff --git a/spec/frontend/clusters_list/components/delete_agent_button_spec.js b/spec/frontend/clusters_list/components/delete_agent_button_spec.js
index 82850b9dea4d6..e8eff45135f41 100644
--- a/spec/frontend/clusters_list/components/delete_agent_button_spec.js
+++ b/spec/frontend/clusters_list/components/delete_agent_button_spec.js
@@ -84,7 +84,7 @@ describe('DeleteAgentButton', () => {
         ...provideData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData,
       mocks: { $toast: { show: toast } },
diff --git a/spec/frontend/environments/canary_ingress_spec.js b/spec/frontend/environments/canary_ingress_spec.js
index 340740e649911..eb3dec27cb614 100644
--- a/spec/frontend/environments/canary_ingress_spec.js
+++ b/spec/frontend/environments/canary_ingress_spec.js
@@ -23,7 +23,7 @@ describe('/environments/components/canary_ingress.vue', () => {
         ...props,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       ...options,
     });
diff --git a/spec/frontend/environments/environment_actions_spec.js b/spec/frontend/environments/environment_actions_spec.js
index 48483152f7a8c..b79f899b6d407 100644
--- a/spec/frontend/environments/environment_actions_spec.js
+++ b/spec/frontend/environments/environment_actions_spec.js
@@ -36,7 +36,7 @@ describe('EnvironmentActions Component', () => {
     wrapper = mountFn(EnvironmentActions, {
       propsData: { actions: [], ...props },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       ...options,
     });
diff --git a/spec/frontend/environments/environments_detail_header_spec.js b/spec/frontend/environments/environments_detail_header_spec.js
index 1f233c05fbf48..0b5f076ba9fbf 100644
--- a/spec/frontend/environments/environments_detail_header_spec.js
+++ b/spec/frontend/environments/environments_detail_header_spec.js
@@ -47,7 +47,7 @@ describe('Environments detail header component', () => {
         TimeAgo,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         canAdminEnvironment: false,
diff --git a/spec/frontend/ide/components/commit_sidebar/form_spec.js b/spec/frontend/ide/components/commit_sidebar/form_spec.js
index a8ee81afa0b07..9810072763006 100644
--- a/spec/frontend/ide/components/commit_sidebar/form_spec.js
+++ b/spec/frontend/ide/components/commit_sidebar/form_spec.js
@@ -26,7 +26,7 @@ describe('IDE commit form', () => {
     wrapper = shallowMount(CommitForm, {
       store,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         GlModal: stubComponent(GlModal),
diff --git a/spec/frontend/ide/components/commit_sidebar/new_merge_request_option_spec.js b/spec/frontend/ide/components/commit_sidebar/new_merge_request_option_spec.js
index 2a455c9d7c14c..8827dd41a7487 100644
--- a/spec/frontend/ide/components/commit_sidebar/new_merge_request_option_spec.js
+++ b/spec/frontend/ide/components/commit_sidebar/new_merge_request_option_spec.js
@@ -33,7 +33,7 @@ describe('NewMergeRequestOption component', () => {
         },
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ide/components/commit_sidebar/radio_group_spec.js b/spec/frontend/ide/components/commit_sidebar/radio_group_spec.js
index a3fa03a4aa530..589d282e4c4a5 100644
--- a/spec/frontend/ide/components/commit_sidebar/radio_group_spec.js
+++ b/spec/frontend/ide/components/commit_sidebar/radio_group_spec.js
@@ -19,7 +19,7 @@ describe('IDE commit sidebar radio group', () => {
       propsData: config.props,
       slots: config.slots,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/ide/components/ide_sidebar_nav_spec.js b/spec/frontend/ide/components/ide_sidebar_nav_spec.js
index 80e8aba407247..b7aa99747b349 100644
--- a/spec/frontend/ide/components/ide_sidebar_nav_spec.js
+++ b/spec/frontend/ide/components/ide_sidebar_nav_spec.js
@@ -37,7 +37,7 @@ describe('ide/components/ide_sidebar_nav', () => {
         ...props,
       },
       directives: {
-        tooltip: createMockDirective(),
+        tooltip: createMockDirective('tooltip'),
       },
     });
   };
diff --git a/spec/frontend/import_entities/import_groups/components/import_table_spec.js b/spec/frontend/import_entities/import_groups/components/import_table_spec.js
index c7bda5a60ece0..904fd25b378ec 100644
--- a/spec/frontend/import_entities/import_groups/components/import_table_spec.js
+++ b/spec/frontend/import_entities/import_groups/components/import_table_spec.js
@@ -102,7 +102,7 @@ describe('import table', () => {
         defaultTargetNamespace,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       provide: {
         glFeatures,
diff --git a/spec/frontend/issuable/components/csv_import_export_buttons_spec.js b/spec/frontend/issuable/components/csv_import_export_buttons_spec.js
index 118c12d968b0c..a392198030d37 100644
--- a/spec/frontend/issuable/components/csv_import_export_buttons_spec.js
+++ b/spec/frontend/issuable/components/csv_import_export_buttons_spec.js
@@ -16,7 +16,7 @@ describe('CsvImportExportButtons', () => {
     glModalDirective = jest.fn();
     return mountExtended(CsvImportExportButtons, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
         glModal: {
           bind(_, { value }) {
             glModalDirective(value);
diff --git a/spec/frontend/issuable/components/issuable_header_warnings_spec.js b/spec/frontend/issuable/components/issuable_header_warnings_spec.js
index 99aa6778e1ef3..690bbf585de2e 100644
--- a/spec/frontend/issuable/components/issuable_header_warnings_spec.js
+++ b/spec/frontend/issuable/components/issuable_header_warnings_spec.js
@@ -25,7 +25,7 @@ describe('IssuableHeaderWarnings', () => {
       store,
       provide,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/issues/show/components/app_spec.js b/spec/frontend/issues/show/components/app_spec.js
index 9fa0ce6f93d73..c534e2a7d7ba2 100644
--- a/spec/frontend/issues/show/components/app_spec.js
+++ b/spec/frontend/issues/show/components/app_spec.js
@@ -60,7 +60,7 @@ describe('Issuable output', () => {
   const mountComponent = (props = {}, options = {}, data = {}) => {
     wrapper = shallowMountExtended(IssuableApp, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: { ...appProps, ...props },
       provide: {
diff --git a/spec/frontend/jira_connect/subscriptions/components/add_namespace_button_spec.js b/spec/frontend/jira_connect/subscriptions/components/add_namespace_button_spec.js
index 9f92ad2adc1cb..06fad25dbf3d2 100644
--- a/spec/frontend/jira_connect/subscriptions/components/add_namespace_button_spec.js
+++ b/spec/frontend/jira_connect/subscriptions/components/add_namespace_button_spec.js
@@ -11,7 +11,7 @@ describe('AddNamespaceButton', () => {
   const createComponent = () => {
     wrapper = shallowMount(AddNamespaceButton, {
       directives: {
-        glModal: createMockDirective(),
+        glModal: createMockDirective('gl-modal'),
       },
     });
   };
diff --git a/spec/frontend/members/components/action_buttons/approve_access_request_button_spec.js b/spec/frontend/members/components/action_buttons/approve_access_request_button_spec.js
index 15bb03480e1cb..621ed968972e3 100644
--- a/spec/frontend/members/components/action_buttons/approve_access_request_button_spec.js
+++ b/spec/frontend/members/components/action_buttons/approve_access_request_button_spec.js
@@ -38,7 +38,7 @@ describe('ApproveAccessRequestButton', () => {
         ...propsData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/members/components/action_buttons/remove_group_link_button_spec.js b/spec/frontend/members/components/action_buttons/remove_group_link_button_spec.js
index b511cebdf282e..4b50aa083ee73 100644
--- a/spec/frontend/members/components/action_buttons/remove_group_link_button_spec.js
+++ b/spec/frontend/members/components/action_buttons/remove_group_link_button_spec.js
@@ -37,7 +37,7 @@ describe('RemoveGroupLinkButton', () => {
         groupLink: group,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js
index cca340169b7fb..d3d732f97933e 100644
--- a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js
+++ b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js
@@ -47,7 +47,7 @@ describe('RemoveMemberButton', () => {
         ...propsData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/members/components/action_buttons/resend_invite_button_spec.js b/spec/frontend/members/components/action_buttons/resend_invite_button_spec.js
index 51cfd47ddf408..ca51cbea1d118 100644
--- a/spec/frontend/members/components/action_buttons/resend_invite_button_spec.js
+++ b/spec/frontend/members/components/action_buttons/resend_invite_button_spec.js
@@ -38,7 +38,7 @@ describe('ResendInviteButton', () => {
         ...propsData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/members/components/action_dropdowns/leave_group_dropdown_item_spec.js b/spec/frontend/members/components/action_dropdowns/leave_group_dropdown_item_spec.js
index 90f5b2170076f..b88f9cd0db2ae 100644
--- a/spec/frontend/members/components/action_dropdowns/leave_group_dropdown_item_spec.js
+++ b/spec/frontend/members/components/action_dropdowns/leave_group_dropdown_item_spec.js
@@ -18,7 +18,7 @@ describe('LeaveGroupDropdownItem', () => {
         ...propsData,
       },
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
       slots: {
         default: text,
diff --git a/spec/frontend/members/components/action_dropdowns/user_action_dropdown_spec.js b/spec/frontend/members/components/action_dropdowns/user_action_dropdown_spec.js
index 5a2de1cac8026..cc1d9972f60a0 100644
--- a/spec/frontend/members/components/action_dropdowns/user_action_dropdown_spec.js
+++ b/spec/frontend/members/components/action_dropdowns/user_action_dropdown_spec.js
@@ -24,7 +24,7 @@ describe('UserActionDropdown', () => {
         ...propsData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/members/components/table/member_source_spec.js b/spec/frontend/members/components/table/member_source_spec.js
index fbfd0ca7ae7e8..b4f3c2b042bf9 100644
--- a/spec/frontend/members/components/table/member_source_spec.js
+++ b/spec/frontend/members/components/table/member_source_spec.js
@@ -23,7 +23,7 @@ describe('MemberSource', () => {
         ...propsData,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/nav/components/responsive_header_spec.js b/spec/frontend/nav/components/responsive_header_spec.js
index f87de0afb14d6..c9c0b1127bfbd 100644
--- a/spec/frontend/nav/components/responsive_header_spec.js
+++ b/spec/frontend/nav/components/responsive_header_spec.js
@@ -14,7 +14,7 @@ describe('~/nav/components/top_nav_menu_sections.vue', () => {
         default: TEST_SLOT_CONTENT,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/nav/components/responsive_home_spec.js b/spec/frontend/nav/components/responsive_home_spec.js
index 8f198d92747ab..7cd958420ebef 100644
--- a/spec/frontend/nav/components/responsive_home_spec.js
+++ b/spec/frontend/nav/components/responsive_home_spec.js
@@ -29,7 +29,7 @@ describe('~/nav/components/responsive_home.vue', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       listeners: {
         'menu-item-click': menuItemClickListener,
diff --git a/spec/frontend/notifications/components/notifications_dropdown_spec.js b/spec/frontend/notifications/components/notifications_dropdown_spec.js
index 0f13de0e6d8ca..75e88d48ebd22 100644
--- a/spec/frontend/notifications/components/notifications_dropdown_spec.js
+++ b/spec/frontend/notifications/components/notifications_dropdown_spec.js
@@ -25,7 +25,7 @@ describe('NotificationsDropdown', () => {
         CustomNotificationsModal,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       provide: {
         dropdownItems: mockDropdownItems,
diff --git a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
index b37edac83f72b..a825319f5460d 100644
--- a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
+++ b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/details_header_spec.js
@@ -73,7 +73,7 @@ describe('Details Header', () => {
       apolloProvider,
       propsData,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       stubs: {
         TitleArea,
diff --git a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row_spec.js b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row_spec.js
index fa0d76762df46..d2d3be256e576 100644
--- a/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row_spec.js
+++ b/spec/frontend/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row_spec.js
@@ -50,7 +50,7 @@ describe('tags list row', () => {
       },
       propsData,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/packages_and_registries/container_registry/explorer/components/list_page/image_list_row_spec.js b/spec/frontend/packages_and_registries/container_registry/explorer/components/list_page/image_list_row_spec.js
index 7506859100793..7b20855bf4cfc 100644
--- a/spec/frontend/packages_and_registries/container_registry/explorer/components/list_page/image_list_row_spec.js
+++ b/spec/frontend/packages_and_registries/container_registry/explorer/components/list_page/image_list_row_spec.js
@@ -49,7 +49,7 @@ describe('Image List Row', () => {
         config: {},
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/packages_and_registries/infrastructure_registry/components/shared/package_list_row_spec.js b/spec/frontend/packages_and_registries/infrastructure_registry/components/shared/package_list_row_spec.js
index 721bdd34a4f89..4a7542ca50963 100644
--- a/spec/frontend/packages_and_registries/infrastructure_registry/components/shared/package_list_row_spec.js
+++ b/spec/frontend/packages_and_registries/infrastructure_registry/components/shared/package_list_row_spec.js
@@ -49,7 +49,7 @@ describe('packages_list_row', () => {
         disableDelete,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js
index 1fda77f2aaa1b..142f8d03c5ddb 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js
+++ b/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js
@@ -38,7 +38,7 @@ describe('PackageTitle', () => {
       },
       provide,
       directives: {
-        GlResizeObserver: createMockDirective(),
+        GlResizeObserver: createMockDirective('gl-resize-observer'),
       },
     });
     await nextTick();
diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/version_row_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/version_row_spec.js
index 67340822fa530..8cb51aaf7385d 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/details/version_row_spec.js
+++ b/spec/frontend/packages_and_registries/package_registry/components/details/version_row_spec.js
@@ -36,7 +36,7 @@ describe('VersionRow', () => {
         GlTruncate,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   }
diff --git a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
index 2a78cfb13f9d6..19d56fe8cc668 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
+++ b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js
@@ -67,7 +67,7 @@ describe('packages_list_row', () => {
         selected,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/packages_and_registries/shared/components/package_path_spec.js b/spec/frontend/packages_and_registries/shared/components/package_path_spec.js
index 93425d4f399f3..cce65d3d0bc77 100644
--- a/spec/frontend/packages_and_registries/shared/components/package_path_spec.js
+++ b/spec/frontend/packages_and_registries/shared/components/package_path_spec.js
@@ -9,7 +9,7 @@ describe('PackagePath', () => {
     wrapper = shallowMount(PackagePath, {
       propsData,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/pages/admin/jobs/index/components/cancel_jobs_spec.js b/spec/frontend/pages/admin/jobs/index/components/cancel_jobs_spec.js
index ec6369e711900..de6d44eabdc36 100644
--- a/spec/frontend/pages/admin/jobs/index/components/cancel_jobs_spec.js
+++ b/spec/frontend/pages/admin/jobs/index/components/cancel_jobs_spec.js
@@ -19,8 +19,8 @@ describe('CancelJobs component', () => {
   const createComponent = (props = {}) => {
     wrapper = shallowMountExtended(CancelJobs, {
       directives: {
-        GlModal: createMockDirective(),
-        GlTooltip: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         url: `${TEST_HOST}/cancel_jobs_modal.vue/cancelAll`,
diff --git a/spec/frontend/pipelines/components/pipeline_mini_graph/linked_pipelines_mini_list_spec.js b/spec/frontend/pipelines/components/pipeline_mini_graph/linked_pipelines_mini_list_spec.js
index 5ea57c51e707d..61dee1f5904d0 100644
--- a/spec/frontend/pipelines/components/pipeline_mini_graph/linked_pipelines_mini_list_spec.js
+++ b/spec/frontend/pipelines/components/pipeline_mini_graph/linked_pipelines_mini_list_spec.js
@@ -19,7 +19,7 @@ describe('Linked pipeline mini list', () => {
   const createComponent = (props = {}) => {
     wrapper = mount(LinkedPipelinesMiniList, {
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         ...props,
diff --git a/spec/frontend/pipelines/pipeline_triggerer_spec.js b/spec/frontend/pipelines/pipeline_triggerer_spec.js
index 58bfb68e85c0b..671f193dcf0c1 100644
--- a/spec/frontend/pipelines/pipeline_triggerer_spec.js
+++ b/spec/frontend/pipelines/pipeline_triggerer_spec.js
@@ -22,7 +22,7 @@ describe('Pipelines Triggerer', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/projects/prune_unreachable_objects_button_spec.js b/spec/frontend/projects/prune_unreachable_objects_button_spec.js
index b345f264ca7de..0471e213fbae7 100644
--- a/spec/frontend/projects/prune_unreachable_objects_button_spec.js
+++ b/spec/frontend/projects/prune_unreachable_objects_button_spec.js
@@ -22,7 +22,7 @@ describe('Project remove modal', () => {
     wrapper = shallowMountExtended(PruneObjectsButton, {
       propsData: defaultProps,
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-modal'),
       },
     });
   };
diff --git a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
index 56b39f045808a..661f842066ebd 100644
--- a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
+++ b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js
@@ -41,7 +41,7 @@ describe('Branch rules app', () => {
       apolloProvider: fakeApollo,
       provide: appProvideMock,
       stubs: { GlModal: stubComponent(GlModal, { template: RENDER_ALL_SLOTS_TEMPLATE }) },
-      directives: { GlModal: createMockDirective() },
+      directives: { GlModal: createMockDirective('gl-modal') },
     });
 
     await waitForPromises();
diff --git a/spec/frontend/repository/components/table/row_spec.js b/spec/frontend/repository/components/table/row_spec.js
index 5d9138ab9cd7c..02796d487df7c 100644
--- a/spec/frontend/repository/components/table/row_spec.js
+++ b/spec/frontend/repository/components/table/row_spec.js
@@ -28,7 +28,7 @@ function factory(propsData = {}) {
       rowNumber: 123,
     },
     directives: {
-      GlHoverLoad: createMockDirective(),
+      GlHoverLoad: createMockDirective('gl-hover-load'),
     },
     mocks: {
       $router,
diff --git a/spec/frontend/security_configuration/components/training_provider_list_spec.js b/spec/frontend/security_configuration/components/training_provider_list_spec.js
index 8f2b53831917b..f378c600ce1f9 100644
--- a/spec/frontend/security_configuration/components/training_provider_list_spec.js
+++ b/spec/frontend/security_configuration/components/training_provider_list_spec.js
@@ -106,7 +106,7 @@ describe('TrainingProviderList component', () => {
         projectFullPath: testProjectPath,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       propsData: {
         securityTrainingEnabled: true,
diff --git a/spec/frontend/sidebar/components/incidents/sidebar_escalation_status_spec.js b/spec/frontend/sidebar/components/incidents/sidebar_escalation_status_spec.js
index 2dded61c073c8..5e0e9f48926a8 100644
--- a/spec/frontend/sidebar/components/incidents/sidebar_escalation_status_spec.js
+++ b/spec/frontend/sidebar/components/incidents/sidebar_escalation_status_spec.js
@@ -57,7 +57,7 @@ describe('SidebarEscalationStatus', () => {
         canUpdate: true,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
       apolloProvider,
     });
diff --git a/spec/frontend/sidebar/components/labels/labels_select_vue/dropdown_value_collapsed_spec.js b/spec/frontend/sidebar/components/labels/labels_select_vue/dropdown_value_collapsed_spec.js
index 56f25a1c6a44f..b33a890b9e3de 100644
--- a/spec/frontend/sidebar/components/labels/labels_select_vue/dropdown_value_collapsed_spec.js
+++ b/spec/frontend/sidebar/components/labels/labels_select_vue/dropdown_value_collapsed_spec.js
@@ -19,7 +19,7 @@ describe('DropdownValueCollapsedComponent', () => {
     wrapper = shallowMount(DropdownValueCollapsedComponent, {
       propsData: { ...defaultProps, ...props },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/sidebar/components/lock/issuable_lock_form_spec.js b/spec/frontend/sidebar/components/lock/issuable_lock_form_spec.js
index 8f825847cfc9c..eecab45b3e539 100644
--- a/spec/frontend/sidebar/components/lock/issuable_lock_form_spec.js
+++ b/spec/frontend/sidebar/components/lock/issuable_lock_form_spec.js
@@ -62,7 +62,7 @@ describe('IssuableLockForm', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js b/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js
index 060a2873e0414..0b7712cf29e42 100644
--- a/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js
+++ b/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js
@@ -140,7 +140,7 @@ describe('SidebarDropdownWidget', () => {
           },
         },
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
         stubs: {
           SidebarEditableItem,
diff --git a/spec/frontend/sidebar/components/time_tracking/time_tracker_spec.js b/spec/frontend/sidebar/components/time_tracking/time_tracker_spec.js
index 45d8b5e464793..ed060ca2705c7 100644
--- a/spec/frontend/sidebar/components/time_tracking/time_tracker_spec.js
+++ b/spec/frontend/sidebar/components/time_tracking/time_tracker_spec.js
@@ -32,7 +32,7 @@ describe('Issuable Time Tracker', () => {
   const mountComponent = ({ props = {}, issuableType = 'issue', loading = false } = {}) => {
     return mount(TimeTracker, {
       propsData: { ...defaultProps, ...props },
-      directives: { GlTooltip: createMockDirective() },
+      directives: { GlTooltip: createMockDirective('gl-tooltip') },
       stubs: {
         transition: stubTransition(),
       },
diff --git a/spec/frontend/terraform/components/states_table_spec.js b/spec/frontend/terraform/components/states_table_spec.js
index 0b3b169891b83..697e52e45ea6a 100644
--- a/spec/frontend/terraform/components/states_table_spec.js
+++ b/spec/frontend/terraform/components/states_table_spec.js
@@ -127,7 +127,7 @@ describe('StatesTable', () => {
         propsData,
         provide: { projectPath: 'path/to/project' },
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/spec/frontend/vue_shared/components/form/input_copy_toggle_visibility_spec.js b/spec/frontend/vue_shared/components/form/input_copy_toggle_visibility_spec.js
index e1da8b690af6a..ae4f3156e2c16 100644
--- a/spec/frontend/vue_shared/components/form/input_copy_toggle_visibility_spec.js
+++ b/spec/frontend/vue_shared/components/form/input_copy_toggle_visibility_spec.js
@@ -21,7 +21,7 @@ describe('InputCopyToggleVisibility', () => {
       InputCopyToggleVisibility,
       merge({}, options, {
         directives: {
-          GlTooltip: createMockDirective(),
+          GlTooltip: createMockDirective('gl-tooltip'),
         },
       }),
     );
diff --git a/spec/frontend/vue_shared/components/markdown/suggestion_diff_header_spec.js b/spec/frontend/vue_shared/components/markdown/suggestion_diff_header_spec.js
index 9db1b779a0473..c2360773a654b 100644
--- a/spec/frontend/vue_shared/components/markdown/suggestion_diff_header_spec.js
+++ b/spec/frontend/vue_shared/components/markdown/suggestion_diff_header_spec.js
@@ -25,7 +25,7 @@ describe('Suggestion Diff component', () => {
         ...props,
       },
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/vue_shared/components/registry/metadata_item_spec.js b/spec/frontend/vue_shared/components/registry/metadata_item_spec.js
index a04e1e237d422..8defeb76e19b4 100644
--- a/spec/frontend/vue_shared/components/registry/metadata_item_spec.js
+++ b/spec/frontend/vue_shared/components/registry/metadata_item_spec.js
@@ -14,7 +14,7 @@ describe('Metadata Item', () => {
     wrapper = shallowMount(component, {
       propsData,
       directives: {
-        GlTooltip: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js
index 986d76d2b95bd..68c126ab2bae1 100644
--- a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js
+++ b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js
@@ -12,7 +12,7 @@ describe('RunnerInstructions component', () => {
   const createComponent = () => {
     wrapper = shallowMountExtended(RunnerInstructions, {
       directives: {
-        GlModal: createMockDirective(),
+        GlModal: createMockDirective('gl-tooltip'),
       },
     });
   };
diff --git a/spec/frontend/vue_shared/components/tooltip_on_truncate_spec.js b/spec/frontend/vue_shared/components/tooltip_on_truncate_spec.js
index ca1f7996ad60c..5e7b2a8923527 100644
--- a/spec/frontend/vue_shared/components/tooltip_on_truncate_spec.js
+++ b/spec/frontend/vue_shared/components/tooltip_on_truncate_spec.js
@@ -30,8 +30,8 @@ describe('TooltipOnTruncate component', () => {
         default: [MOCK_TITLE],
       },
       directives: {
-        GlTooltip: createMockDirective(),
-        GlResizeObserver: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
+        GlResizeObserver: createMockDirective('gl-resize-observer'),
       },
       ...options,
     });
@@ -42,8 +42,8 @@ describe('TooltipOnTruncate component', () => {
       ...TooltipOnTruncate,
       directives: {
         ...TooltipOnTruncate.directives,
-        GlTooltip: createMockDirective(),
-        GlResizeObserver: createMockDirective(),
+        GlTooltip: createMockDirective('gl-tooltip'),
+        GlResizeObserver: createMockDirective('gl-resize-observer'),
       },
     };
 
diff --git a/spec/frontend/vue_shared/issuable/show/components/issuable_title_spec.js b/spec/frontend/vue_shared/issuable/show/components/issuable_title_spec.js
index 6f62fb773530b..619d0cb5dd311 100644
--- a/spec/frontend/vue_shared/issuable/show/components/issuable_title_spec.js
+++ b/spec/frontend/vue_shared/issuable/show/components/issuable_title_spec.js
@@ -22,7 +22,7 @@ const createComponent = (propsData = issuableTitleProps) =>
       'status-badge': 'Open',
     },
     directives: {
-      GlTooltip: createMockDirective(),
+      GlTooltip: createMockDirective('gl-tooltip'),
     },
   });
 
diff --git a/spec/frontend/whats_new/components/app_spec.js b/spec/frontend/whats_new/components/app_spec.js
index ee15034daff0c..265e0344286fb 100644
--- a/spec/frontend/whats_new/components/app_spec.js
+++ b/spec/frontend/whats_new/components/app_spec.js
@@ -49,7 +49,7 @@ describe('App', () => {
       store,
       propsData: buildProps(),
       directives: {
-        GlResizeObserver: createMockDirective(),
+        GlResizeObserver: createMockDirective('gl-resize-observer'),
       },
     });
   };
diff --git a/spec/frontend/work_items/components/work_item_type_icon_spec.js b/spec/frontend/work_items/components/work_item_type_icon_spec.js
index 182fb0f8cb6ca..dfcf9be3d619f 100644
--- a/spec/frontend/work_items/components/work_item_type_icon_spec.js
+++ b/spec/frontend/work_items/components/work_item_type_icon_spec.js
@@ -9,7 +9,7 @@ function createComponent(propsData) {
   wrapper = shallowMount(WorkItemTypeIcon, {
     propsData,
     directives: {
-      GlTooltip: createMockDirective(),
+      GlTooltip: createMockDirective('gl-tooltip'),
     },
   });
 }
-- 
GitLab