diff --git a/spec/features/issues/reset_filters_spec.rb b/spec/features/issues/reset_filters_spec.rb
index da8b2ba579b4552d67b72b9847c19407ff5d3c0d..41f218eaa8b4e7294010066fbd12d1b866a718dd 100644
--- a/spec/features/issues/reset_filters_spec.rb
+++ b/spec/features/issues/reset_filters_spec.rb
@@ -2,6 +2,7 @@ require 'rails_helper'
 
 feature 'Issues filter reset button', feature: true, js: true do
   include WaitForAjax
+  include IssueHelpers
 
   let!(:project)    { create(:project, :public) }
   let!(:user)        { create(:user)}
@@ -12,12 +13,11 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   before do
     project.team << [user, :developer]
-    visit_issues(project)
   end
 
   context 'when a milestone filter has been applied' do
     it 'resets the milestone filter' do
-      filter_by_milestone(milestone.title)
+      visit_issues(project, milestone_title: milestone.title)
       expect(page).to have_css('.issue', count: 1)
 
       reset_filters
@@ -27,7 +27,7 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   context 'when a label filter has been applied' do
     it 'resets the label filter' do
-      filter_by_label(bug.title)
+      visit_issues(project, label_name: bug.name)
       expect(page).to have_css('.issue', count: 1)
 
       reset_filters
@@ -37,8 +37,7 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   context 'when a text search has been conducted' do
     it 'resets the text search filter' do
-
-      fill_in 'issue_search', with: 'Bug'
+      visit_issues(project, issue_search: 'Bug')
       expect(page).to have_css('.issue', count: 1)
 
       reset_filters
@@ -48,7 +47,7 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   context 'when author filter has been applied' do
     it 'resets the author filter' do
-      filter_by_author(user.name)
+      visit_issues(project, author_id: user.id)
       expect(page).to have_css('.issue', count: 1)
 
       reset_filters
@@ -58,7 +57,7 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   context 'when assignee filter has been applied' do
     it 'resets the assignee filter' do
-      filter_by_assignee(user.name)
+      visit_issues(project, assignee_id: user.id)
       expect(page).to have_css('.issue', count: 1)
 
       reset_filters
@@ -68,17 +67,7 @@ feature 'Issues filter reset button', feature: true, js: true do
 
   context 'when all filters have been applied' do
     it 'resets all filters' do
-
-      wait_for_ajax
-
-      filter_by_milestone(milestone.title)
-
-      wait_for_ajax
-
-      filter_by_author(user.username)
-
-      wait_for_ajax
-
+      visit_issues(project, assignee_id: user.id, author_id: user.id, milestone_title: milestone.title, label_name: bug.name, issue_search: 'Bug')
       expect(page).to have_css('.issue', count: 0)
 
       reset_filters
@@ -86,33 +75,7 @@ feature 'Issues filter reset button', feature: true, js: true do
     end
   end
 
-  def filter_by_milestone(title)
-    find('.js-milestone-select').click
-    find('.milestone-filter .dropdown-content a', text: title).click
-  end
-
-  def filter_by_label(title)
-    find('.js-label-select').click
-    find('.labels-filter .dropdown-content a', text: title).click
-    find('.labels-filter .dropdown-title .dropdown-menu-close-icon').click
-  end
-
-  def filter_by_author(name)
-    find('.js-author-search').click
-    find('.dropdown-menu-author .dropdown-content a', text: name).click
-  end
-
-  def filter_by_assignee(name)
-    find('.js-assignee-search').click
-    find('.dropdown-menu-assignee .dropdown-content a', text: name).click
-  end
-
   def reset_filters
     find('.reset-filters').click
-    wait_for_ajax
-  end
-
-  def visit_issues(project)
-    visit namespace_project_issues_path(project.namespace, project)
   end
 end