Add test coverage for `createAlert` usage

While replacing createFlash by createAlert we have realised the gap of coverage for the createAlert usage. Sometimes we modified several components and modules but that didn't reflected in any change in the specs (see for example this MR)

createAlert is sometimes used to warn the user about unusual errors. One reason for the coverage gap could be that developers may have found difficulties recreating these errors states.

In this issue we advocate to improve the coverage for the use of createAlert.

Some (but not all) of the files affected:

  • app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue
  • app/assets/javascripts/add_context_commits_modal/store/actions.js
  • app/assets/javascripts/admin/deploy_keys/components/table.vue
  • app/assets/javascripts/admin/statistics_panel/store/actions.js
  • app/assets/javascripts/admin/users/components/users_table.vue
  • app/assets/javascripts/alerts_settings/components/alerts_settings_wrapper.vue
  • app/assets/javascripts/alerts_settings/utils/cache_updates.js
  • app/assets/javascripts/analytics/shared/components/value_stream_metrics.vue
  • app/assets/javascripts/analytics/shared/utils.js
  • app/assets/javascripts/analytics/usage_trends/components/usage_counts.vue
  • app/assets/javascripts/api/user_api.js
  • app/assets/javascripts/awards_handler.js
  • app/assets/javascripts/badges/components/badge_form.vue
  • app/assets/javascripts/badges/components/badge_settings.vue
  • app/assets/javascripts/batch_comments/stores/modules/batch_comments/actions.js
  • app/assets/javascripts/behaviors/preview_markdown.js
  • app/assets/javascripts/blob/file_template_mediator.js
  • app/assets/javascripts/blob/openapi/index.js
  • app/assets/javascripts/blob/viewer/index.js
  • app/assets/javascripts/blob_edit/blob_bundle.js
  • app/assets/javascripts/blob_edit/edit_blob.js
  • app/assets/javascripts/branches/divergence_graph.js
  • app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue
  • app/assets/javascripts/ci_variable_list/components/ci_group_variables.vue
  • app/assets/javascripts/ci_variable_list/components/ci_project_variables.vue
  • app/assets/javascripts/ci_variable_list/store/actions.js
  • app/assets/javascripts/clusters/clusters_bundle.js
  • app/assets/javascripts/clusters_list/store/actions.js
  • app/assets/javascripts/commit_merge_requests.js
  • app/assets/javascripts/confidential_merge_request/components/project_form_group.vue
  • app/assets/javascripts/contributors/stores/actions.js
  • app/assets/javascripts/cycle_analytics/store/actions.js
  • app/assets/javascripts/deploy_freeze/store/actions.js
  • app/assets/javascripts/deploy_keys/components/app.vue
  • app/assets/javascripts/design_management/components/design_notes/design_discussion.vue
  • app/assets/javascripts/design_management/mixins/all_designs.js
  • app/assets/javascripts/design_management/pages/design/index.vue
  • app/assets/javascripts/design_management/utils/cache_update.js
  • app/assets/javascripts/diff.js
  • app/assets/javascripts/diffs/components/app.vue
  • app/assets/javascripts/diffs/components/diff_expansion_cell.vue
  • app/assets/javascripts/diffs/components/diff_file.vue
  • app/assets/javascripts/diffs/store/actions.js
  • app/assets/javascripts/editor/extensions/source_editor_markdown_livepreview_ext.js
  • app/assets/javascripts/environments/components/delete_environment_modal.vue
  • app/assets/javascripts/environments/components/deployment.vue
  • app/assets/javascripts/environments/components/edit_environment.vue
  • app/assets/javascripts/environments/components/new_environment.vue
  • app/assets/javascripts/environments/mixins/environments_mixin.js
  • app/assets/javascripts/error_tracking/components/error_details.vue
  • app/assets/javascripts/error_tracking/store/actions.js
  • app/assets/javascripts/error_tracking/store/details/actions.js
  • app/assets/javascripts/error_tracking/store/list/actions.js
  • app/assets/javascripts/error_tracking_settings/store/actions.js
  • app/assets/javascripts/feature_flags/components/environments_dropdown.vue
  • app/assets/javascripts/feature_flags/components/new_environments_dropdown.vue
  • app/assets/javascripts/feature_flags/store/edit/actions.js
  • app/assets/javascripts/feature_highlight/feature_highlight_helper.js
  • app/assets/javascripts/filtered_search/dropdown_ajax_filter.js
  • app/assets/javascripts/filtered_search/dropdown_emoji.js
  • app/assets/javascripts/filtered_search/dropdown_non_user.js
  • app/assets/javascripts/filtered_search/filtered_search_manager.js
  • app/assets/javascripts/filtered_search/visual_token_value.js
  • app/assets/javascripts/gpg_badges.js
  • app/assets/javascripts/grafana_integration/store/actions.js
  • app/assets/javascripts/group.js
  • app/assets/javascripts/groups/components/app.vue
  • app/assets/javascripts/groups/settings/components/access_dropdown.vue
  • app/assets/javascripts/ide/components/new_dropdown/modal.vue
  • app/assets/javascripts/ide/components/repo_editor.vue
  • app/assets/javascripts/ide/stores/actions.js
  • app/assets/javascripts/ide/stores/actions/merge_request.js
  • app/assets/javascripts/ide/stores/actions/project.js
  • app/assets/javascripts/ide/stores/modules/commit/actions.js
  • app/assets/javascripts/ide/stores/modules/terminal/actions/session_controls.js
  • app/assets/javascripts/ide/stores/modules/terminal/actions/session_status.js
  • app/assets/javascripts/import_entities/import_groups/components/import_table.vue
  • app/assets/javascripts/import_entities/import_groups/services/status_poller.js
  • app/assets/javascripts/import_entities/import_projects/store/actions.js
  • app/assets/javascripts/incidents_settings/incidents_settings_service.js
  • app/assets/javascripts/issuable/bulk_update_sidebar/issuable_bulk_update_actions.js
  • app/assets/javascripts/issues/create_merge_request_dropdown.js
  • app/assets/javascripts/issues/issue.js
  • app/assets/javascripts/issues/list/components/issues_list_app.vue
  • app/assets/javascripts/issues/list/components/new_issue_dropdown.vue
  • app/assets/javascripts/issues/manual_ordering.js
  • app/assets/javascripts/issues/related_merge_requests/store/actions.js
  • app/assets/javascripts/issues/show/components/app.vue
  • app/assets/javascripts/issues/show/components/description.vue
  • app/assets/javascripts/issues/show/components/header_actions.vue
  • app/assets/javascripts/issues/show/components/incidents/incident_tabs.vue
  • app/assets/javascripts/jobs/components/table/jobs_table_app.vue
  • app/assets/javascripts/jobs/store/actions.js
  • app/assets/javascripts/labels/components/promote_label_modal.vue
  • app/assets/javascripts/labels/group_label_subscription.js
  • app/assets/javascripts/labels/label_manager.js
  • app/assets/javascripts/labels/labels_select.js
  • app/assets/javascripts/labels/project_label_subscription.js
  • app/assets/javascripts/main.js
  • app/assets/javascripts/merge_conflicts/components/diff_file_editor.vue
  • app/assets/javascripts/merge_conflicts/store/actions.js
  • app/assets/javascripts/merge_request.js
  • app/assets/javascripts/merge_request_tabs.js
  • app/assets/javascripts/milestones/components/promote_milestone_modal.vue
  • app/assets/javascripts/milestones/milestone.js
  • app/assets/javascripts/mirrors/mirror_repos.js
  • app/assets/javascripts/mirrors/ssh_mirror.js
  • app/assets/javascripts/monitoring/components/dashboard.vue
  • app/assets/javascripts/monitoring/stores/actions.js
  • app/assets/javascripts/namespaces/leave_by_url.js
  • app/assets/javascripts/notes/components/comment_form.vue
  • app/assets/javascripts/notes/components/note_actions.vue
  • app/assets/javascripts/notes/components/note_awards_list.vue
  • app/assets/javascripts/notes/components/noteable_discussion.vue
  • app/assets/javascripts/notes/components/noteable_note.vue
  • app/assets/javascripts/notes/components/notes_app.vue
  • app/assets/javascripts/notes/mixins/diff_line_note_form.js
  • app/assets/javascripts/notes/mixins/resolvable.js
  • app/assets/javascripts/operation_settings/store/actions.js
  • app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/tags_list.vue
  • app/assets/javascripts/packages_and_registries/container_registry/explorer/pages/details.vue
  • app/assets/javascripts/packages_and_registries/container_registry/explorer/pages/list.vue
  • app/assets/javascripts/packages_and_registries/infrastructure_registry/details/store/actions.js
  • app/assets/javascripts/packages_and_registries/infrastructure_registry/list/components/packages_list_app.vue
  • app/assets/javascripts/packages_and_registries/infrastructure_registry/list/stores/actions.js
  • app/assets/javascripts/packages_and_registries/package_registry/components/functional/delete_package.vue
  • app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue
  • app/assets/javascripts/packages_and_registries/package_registry/pages/list.vue
  • app/assets/javascripts/pages/admin/application_settings/payload_downloader.js
  • app/assets/javascripts/pages/admin/application_settings/payload_previewer.js
  • app/assets/javascripts/pages/admin/broadcast_messages/broadcast_message.js
  • app/assets/javascripts/pages/admin/jobs/index/components/stop_jobs_modal.vue
  • app/assets/javascripts/pages/dashboard/todos/index/todos.js
  • app/assets/javascripts/pages/groups/new/group_path_validator.js
  • app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
  • app/assets/javascripts/pages/import/history/components/import_history_app.vue
  • app/assets/javascripts/pages/projects/commit/show/index.js
  • app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
  • app/assets/javascripts/pages/projects/forks/new/components/project_namespace.vue
  • app/assets/javascripts/pages/projects/merge_requests/creations/new/compare_autocomplete.js
  • app/assets/javascripts/pages/projects/merge_requests/edit/index.js
  • app/assets/javascripts/pages/projects/project.js
  • app/assets/javascripts/pages/sessions/new/username_validator.js
  • app/assets/javascripts/pages/shared/wikis/components/wiki_content.vue
  • app/assets/javascripts/pages/users/activity_calendar.js
  • app/assets/javascripts/persistent_user_callout.js
  • app/assets/javascripts/pipelines/components/jobs/failed_jobs_app.vue
  • app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue
  • app/assets/javascripts/pipelines/components/jobs/jobs_app.vue
  • app/assets/javascripts/pipelines/components/jobs_shared/action_component.vue
  • app/assets/javascripts/pipelines/components/pipeline_mini_graph/pipeline_stage.vue
  • app/assets/javascripts/pipelines/components/pipelines_list/pipelines.vue
  • app/assets/javascripts/pipelines/components/pipelines_list/pipelines_manual_actions.vue
  • app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_branch_name_token.vue
  • app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_tag_name_token.vue
  • app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue
  • app/assets/javascripts/pipelines/mixins/pipelines_mixin.js
  • app/assets/javascripts/pipelines/pipeline_details_bundle.js
  • app/assets/javascripts/pipelines/stores/test_reports/actions.js
  • app/assets/javascripts/pipelines/stores/test_reports/mutations.js
  • app/assets/javascripts/profile/account/components/update_username.vue
  • app/assets/javascripts/profile/preferences/components/profile_preferences.vue
  • app/assets/javascripts/project_select.js
  • app/assets/javascripts/projects/commit/store/actions.js
  • app/assets/javascripts/projects/commit_box/info/components/commit_box_pipeline_mini_graph.vue
  • app/assets/javascripts/projects/commit_box/info/components/commit_box_pipeline_status.vue
  • app/assets/javascripts/projects/commits/store/actions.js
  • app/assets/javascripts/projects/compare/components/revision_dropdown.vue
  • app/assets/javascripts/projects/compare/components/revision_dropdown_legacy.vue
  • app/assets/javascripts/projects/project_find_file.js
  • app/assets/javascripts/projects/settings/access_dropdown.js
  • app/assets/javascripts/projects/settings/components/access_dropdown.vue
  • app/assets/javascripts/projects/settings/repository/branch_rules/app.vue
  • app/assets/javascripts/projects/star.js
  • app/assets/javascripts/projects/tree/components/commit_pipeline_status_component.vue
  • app/assets/javascripts/protected_branches/protected_branch_create.js
  • app/assets/javascripts/protected_branches/protected_branch_edit.js
  • app/assets/javascripts/protected_tags/protected_tag_edit.js
  • app/assets/javascripts/related_issues/components/related_issues_root.vue
  • app/assets/javascripts/releases/components/app_index.vue
  • app/assets/javascripts/releases/components/app_show.vue
  • app/assets/javascripts/releases/stores/modules/edit_new/actions.js
  • app/assets/javascripts/repository/commits_service.js
  • app/assets/javascripts/repository/components/blob_content_viewer.vue
  • app/assets/javascripts/repository/components/blob_controls.vue
  • app/assets/javascripts/repository/components/new_directory_modal.vue
  • app/assets/javascripts/repository/components/tree_content.vue
  • app/assets/javascripts/repository/components/upload_blob_modal.vue
  • app/assets/javascripts/search/store/actions.js
  • app/assets/javascripts/service_ping_consent.js
  • app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue
  • app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue
  • app/assets/javascripts/sidebar/components/assignees/sidebar_assignees_widget.vue
  • app/assets/javascripts/sidebar/components/confidential/sidebar_confidentiality_form.vue
  • app/assets/javascripts/sidebar/components/confidential/sidebar_confidentiality_widget.vue
  • app/assets/javascripts/sidebar/components/crm_contacts/crm_contacts.vue
  • app/assets/javascripts/sidebar/components/date/sidebar_date_widget.vue
  • app/assets/javascripts/sidebar/components/lock/edit_form_buttons.vue
  • app/assets/javascripts/sidebar/components/lock/issuable_lock_form.vue
  • app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue
  • app/assets/javascripts/sidebar/components/severity/sidebar_severity.vue
  • app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue
  • app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue
  • app/assets/javascripts/sidebar/components/time_tracking/report.vue
  • app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue
  • app/assets/javascripts/sidebar/lib/sidebar_move_issue.js
  • app/assets/javascripts/sidebar/sidebar_mediator.js
  • app/assets/javascripts/single_file_diff.js
  • app/assets/javascripts/snippets/components/edit.vue
  • app/assets/javascripts/snippets/components/snippet_blob_edit.vue
  • app/assets/javascripts/snippets/components/snippet_header.vue
  • app/assets/javascripts/task_list.js
  • app/assets/javascripts/terms/components/app.vue
  • app/assets/javascripts/token_access/components/token_access.vue
  • app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue
  • app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_actions.vue
  • app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue
  • app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue
  • app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue
  • app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
  • app/assets/javascripts/vue_merge_request_widget/components/states/work_in_progress.vue
  • app/assets/javascripts/vue_merge_request_widget/mixins/approvals.js
  • app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
  • app/assets/javascripts/vue_shared/components/color_select_dropdown/color_select_root.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/store/modules/filters/actions.js
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/branch_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_contact_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/crm_organization_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/emoji_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/label_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue
  • app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/release_token.vue
  • app/assets/javascripts/vue_shared/components/markdown/field.vue
  • app/assets/javascripts/vue_shared/components/markdown/suggestions.vue
  • app/assets/javascripts/vue_shared/components/metric_images/store/actions.js
  • app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/store/actions.js
  • app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents_create_view.vue
  • app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents_labels_view.vue
  • app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue
  • app/assets/javascripts/vue_shared/components/user_popover/user_popover.vue
  • app/assets/javascripts/vue_shared/security_reports/components/artifact_downloads/merge_request_artifact_download.vue
  • app/assets/javascripts/vue_shared/security_reports/security_reports_app.vue
  • app/assets/javascripts/deprecated_notes.js
  • app/assets/javascripts/notes/stores/actions.js
Edited by Eduardo Sanz García