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:
localVue
usage
Useless -
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
localVue.extend
Useless -
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 Thomas Randolph