Skip to content

GitLab Next

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 39,511
    • Issues 39,511
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 1,222
    • Merge requests 1,222
  • Requirements
    • Requirements
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
    • Value stream
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLabGitLab
  • Issues
  • #220482

Closed
Open
Created Jun 05, 2020 by Himanshu Kapoor@himkp🔴Developer1 of 47 tasks completed1/47 tasks

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 Feb 24, 2021 by Thomas Randolph
Assignee
Assign to
Time tracking