[go: up one dir, main page]

Skip to content

Don't use createLocalVue in Jest tests

It was important to use createLocalVue in Karma tests because without that, the specs could become flaky and interfere with each other. However this is no longer a problem in Jest. Unless the Vue component is using global plugins like Vuex, vue-router or vue-appolo, we should not use createLocalVue.

As @winniehell pointed in this comment Vue instance is not shared across tests, so the most boring solution is just to remove it everywhere and replace with Vue.use usage

Affected files

This is almost certainly out-of-date, but, this is a list of affected files from this comment:

Useless localVue usage

  • spec/frontend/notes/components/discussion_resolve_with_issue_button_spec.js
  • spec/frontend/vue_shared/components/project_selector/project_selector_spec.js
  • ee/spec/frontend/security_dashboard/components/unscanned_projects_tab_content_spec.js
  • ee/spec/frontend/roadmap/components/epics_list_section_spec.js
  • ee/spec/frontend/roadmap/components/milestones_list_section_spec.js

Useless localVue.extend

  • ee/spec/frontend/approvals/components/app_spec.js
  • ee/spec/frontend/approvals/components/branches_select_spec.js
  • ee/spec/frontend/approvals/components/hidden_groups_item_spec.js
  • ee/spec/frontend/approvals/components/modal_rule_create_spec.js
  • ee/spec/frontend/approvals/components/rule_controls_spec.js
  • ee/spec/frontend/approvals/components/rule_form_spec.js
  • ee/spec/frontend/approvals/components/mr_edit/mr_rules_hidden_inputs_spec.js
  • ee/spec/frontend/approvals/components/mr_edit/mr_rules_spec.js
  • ee/spec/frontend/approvals/components/project_settings/project_rules_spec.js
  • ee/spec/frontend/onboarding/onboarding_helper/components/action_popover_spec.js
  • ee/spec/frontend/onboarding/onboarding_helper/components/help_content_popover_spec.js
  • ee/spec/frontend/onboarding/onboarding_helper/components/onboarding_helper_spec.js
  • ee/spec/frontend/onboarding/onboarding_helper/components/tour_parts_list_spec.js
  • ee/spec/frontend/onboarding/onboarding_welcome/welcome_page_spec.js
  • ee/spec/frontend/security_dashboard/components/vulnerability_chart_button_spec.js
  • spec/frontend/batch_comments/components/diff_file_drafts_spec.js
  • spec/frontend/batch_comments/components/draft_note_spec.js
  • spec/frontend/diffs/components/app_spec.js
  • spec/frontend/diffs/components/diff_discussions_spec.js
  • spec/frontend/ide/components/terminal/terminal_spec.js
  • spec/frontend/jobs/components/manual_variables_form_spec.js
  • spec/frontend/notes/components/discussion_keyboard_navigator_spec.js
  • spec/frontend/notes/components/note_actions_spec.js
  • spec/frontend/notes/components/note_form_spec.js
  • spec/frontend/notes/components/noteable_discussion_spec.js
  • spec/frontend/notes/components/noteable_note_spec.js
  • spec/frontend/notes/components/note_actions/reply_button_spec.js
  • spec/frontend/related_merge_requests/components/related_merge_requests_spec.js
  • spec/frontend/reports/accessibility_report/grouped_accessibility_reports_app_spec.js
  • spec/frontend/vue_mr_widget/components/mr_widget_alert_message_spec.js
  • spec/frontend/vue_mr_widget/components/states/mr_widget_conflicts_spec.js
  • spec/frontend/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js
  • spec/frontend/vue_mr_widget/components/states/mr_widget_squash_before_merge_spec.js
  • spec/frontend/vue_shared/components/project_selector/project_list_item_spec.js

localVue.nextTick

  • ee/spec/frontend/approvals/components/rule_form_spec.js
  • ee/spec/frontend/subscriptions/new/components/checkout/billing_address_spec.js
  • spec/frontend/subscriptions/new/components/checkout/payment_method_spec.js
  • ee/spec/frontend/subscriptions/new/components/checkout/subscription_details_spec.js
  • ee/spec/frontend/subscriptions/new/components/checkout/zuora_spec.js
  • spec/frontend/ide/components/terminal/terminal_spec.js

Out of date developer docs

  • doc/development/fe_guide/vuex.md
  • doc/development/fe_guide/graphql.md
Edited by 🤖 GitLab Bot 🤖