Commit 91f235df authored by Heinrich Lee Yu's avatar Heinrich Lee Yu

Fix tests

parent ee4a7811
...@@ -253,7 +253,6 @@ export class SearchAutocomplete { ...@@ -253,7 +253,6 @@ export class SearchAutocomplete {
} }
getCategoryContents() { getCategoryContents() {
const userId = gon.current_user_id;
const userName = gon.current_username; const userName = gon.current_username;
const { projectOptions, groupOptions, dashboardOptions } = gl; const { projectOptions, groupOptions, dashboardOptions } = gl;
...@@ -279,21 +278,21 @@ export class SearchAutocomplete { ...@@ -279,21 +278,21 @@ export class SearchAutocomplete {
const issueItems = [ const issueItems = [
{ {
text: s__('SearchAutocomplete|Issues assigned to me'), text: s__('SearchAutocomplete|Issues assigned to me'),
url: `${issuesPath}/?assignee_id=${userId}`, url: `${issuesPath}/?assignee_username=${userName}`,
}, },
{ {
text: s__("SearchAutocomplete|Issues I've created"), text: s__("SearchAutocomplete|Issues I've created"),
url: `${issuesPath}/?author_id=${userId}`, url: `${issuesPath}/?author_username=${userName}`,
}, },
]; ];
const mergeRequestItems = [ const mergeRequestItems = [
{ {
text: s__('SearchAutocomplete|Merge requests assigned to me'), text: s__('SearchAutocomplete|Merge requests assigned to me'),
url: `${mrPath}/?assignee_id=${userId}`, url: `${mrPath}/?assignee_username=${userName}`,
}, },
{ {
text: s__("SearchAutocomplete|Merge requests I've created"), text: s__("SearchAutocomplete|Merge requests I've created"),
url: `${mrPath}/?author_id=${userId}`, url: `${mrPath}/?author_username=${userName}`,
}, },
]; ];
......
...@@ -5,6 +5,9 @@ class DashboardController < Dashboard::ApplicationController ...@@ -5,6 +5,9 @@ class DashboardController < Dashboard::ApplicationController
include MergeRequestsAction include MergeRequestsAction
FILTER_PARAMS = [ FILTER_PARAMS = [
# author_id and assignee_id are kept so old RSS links still work
:author_id,
:assignee_id,
:author_username, :author_username,
:assignee_username, :assignee_username,
:milestone_title, :milestone_title,
......
...@@ -45,9 +45,9 @@ class RootController < Dashboard::ProjectsController ...@@ -45,9 +45,9 @@ class RootController < Dashboard::ProjectsController
when 'todos' when 'todos'
redirect_to(dashboard_todos_path) redirect_to(dashboard_todos_path)
when 'issues' when 'issues'
redirect_to(issues_dashboard_path(assignee_id: current_user.id)) redirect_to(issues_dashboard_path(assignee_username: current_user.username))
when 'merge_requests' when 'merge_requests'
redirect_to(merge_requests_dashboard_path(assignee_id: current_user.id)) redirect_to(merge_requests_dashboard_path(assignee_username: current_user.username))
end end
end end
......
...@@ -178,7 +178,9 @@ module ApplicationHelper ...@@ -178,7 +178,9 @@ module ApplicationHelper
scope: params[:scope], scope: params[:scope],
milestone_title: params[:milestone_title], milestone_title: params[:milestone_title],
assignee_id: params[:assignee_id], assignee_id: params[:assignee_id],
assignee_username: params[:assignee_username],
author_id: params[:author_id], author_id: params[:author_id],
author_username: params[:author_username],
search: params[:search], search: params[:search],
label_name: params[:label_name] label_name: params[:label_name]
} }
......
- @hide_top_links = true - @hide_top_links = true
- page_title _("Issues") - page_title _("Issues")
- @breadcrumb_link = issues_dashboard_path(assignee_id: current_user.id) - @breadcrumb_link = issues_dashboard_path(assignee_username: current_user.username)
= content_for :meta_tags do = content_for :meta_tags do
= auto_discovery_link_tag(:atom, safe_params.merge(rss_url_options).to_h, title: "#{current_user.name} issues") = auto_discovery_link_tag(:atom, safe_params.merge(rss_url_options).to_h, title: "#{current_user.name} issues")
......
- @hide_top_links = true - @hide_top_links = true
- page_title _("Merge Requests") - page_title _("Merge Requests")
- @breadcrumb_link = merge_requests_dashboard_path(assignee_id: current_user.id) - @breadcrumb_link = merge_requests_dashboard_path(assignee_username: current_user.username)
.page-title-holder .page-title-holder
%h1.page-title= _('Merge Requests') %h1.page-title= _('Merge Requests')
......
...@@ -98,7 +98,7 @@ describe RootController do ...@@ -98,7 +98,7 @@ describe RootController do
it 'redirects to their assigned issues' do it 'redirects to their assigned issues' do
get :index get :index
expect(response).to redirect_to issues_dashboard_path(assignee_id: user.id) expect(response).to redirect_to issues_dashboard_path(assignee_username: user.username)
end end
end end
...@@ -110,7 +110,7 @@ describe RootController do ...@@ -110,7 +110,7 @@ describe RootController do
it 'redirects to their assigned merge requests' do it 'redirects to their assigned merge requests' do
get :index get :index
expect(response).to redirect_to merge_requests_dashboard_path(assignee_id: user.id) expect(response).to redirect_to merge_requests_dashboard_path(assignee_username: user.username)
end end
end end
......
...@@ -25,35 +25,35 @@ describe "Dashboard Issues Feed" do ...@@ -25,35 +25,35 @@ describe "Dashboard Issues Feed" do
it "renders atom feed via personal access token" do it "renders atom feed via personal access token" do
personal_access_token = create(:personal_access_token, user: user) personal_access_token = create(:personal_access_token, user: user)
visit issues_dashboard_path(:atom, private_token: personal_access_token.token, assignee_id: user.id) visit issues_dashboard_path(:atom, private_token: personal_access_token.token, assignee_username: user.username)
expect(response_headers['Content-Type']).to have_content('application/atom+xml') expect(response_headers['Content-Type']).to have_content('application/atom+xml')
expect(body).to have_selector('title', text: "#{user.name} issues") expect(body).to have_selector('title', text: "#{user.name} issues")
end end
it "renders atom feed via feed token" do it "renders atom feed via feed token" do
visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_id: user.id) visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_username: user.username)
expect(response_headers['Content-Type']).to have_content('application/atom+xml') expect(response_headers['Content-Type']).to have_content('application/atom+xml')
expect(body).to have_selector('title', text: "#{user.name} issues") expect(body).to have_selector('title', text: "#{user.name} issues")
end end
it "renders atom feed with url parameters" do it "renders atom feed with url parameters" do
visit issues_dashboard_path(:atom, feed_token: user.feed_token, state: 'opened', assignee_id: user.id) visit issues_dashboard_path(:atom, feed_token: user.feed_token, state: 'opened', assignee_username: user.username)
link = find('link[type="application/atom+xml"]') link = find('link[type="application/atom+xml"]')
params = CGI.parse(URI.parse(link[:href]).query) params = CGI.parse(URI.parse(link[:href]).query)
expect(params).to include('feed_token' => [user.feed_token]) expect(params).to include('feed_token' => [user.feed_token])
expect(params).to include('state' => ['opened']) expect(params).to include('state' => ['opened'])
expect(params).to include('assignee_id' => [user.id.to_s]) expect(params).to include('assignee_username' => [user.username.to_s])
end end
context "issue with basic fields" do context "issue with basic fields" do
let!(:issue2) { create(:issue, author: user, assignees: [assignee], project: project2, description: 'test desc') } let!(:issue2) { create(:issue, author: user, assignees: [assignee], project: project2, description: 'test desc') }
it "renders issue fields" do it "renders issue fields" do
visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_id: assignee.id) visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_username: assignee.username)
entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue2.title}')]") entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue2.title}')]")
...@@ -76,7 +76,7 @@ describe "Dashboard Issues Feed" do ...@@ -76,7 +76,7 @@ describe "Dashboard Issues Feed" do
end end
it "renders issue label and milestone info" do it "renders issue label and milestone info" do
visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_id: assignee.id) visit issues_dashboard_path(:atom, feed_token: user.feed_token, assignee_username: assignee.username)
entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue1.title}')]") entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue1.title}')]")
......
...@@ -45,11 +45,11 @@ describe 'Navigation bar counter', :use_clean_rails_memory_store_caching do ...@@ -45,11 +45,11 @@ describe 'Navigation bar counter', :use_clean_rails_memory_store_caching do
end end
def issues_path def issues_path
issues_dashboard_path(assignee_id: user.id) issues_dashboard_path(assignee_username: user.username)
end end
def merge_requests_path def merge_requests_path
merge_requests_dashboard_path(assignee_id: user.id) merge_requests_dashboard_path(assignee_username: user.username)
end end
def expect_counters(issuable_type, count) def expect_counters(issuable_type, count)
......
...@@ -2,6 +2,7 @@ require 'spec_helper' ...@@ -2,6 +2,7 @@ require 'spec_helper'
describe 'Dashboard Issues filtering', :js do describe 'Dashboard Issues filtering', :js do
include Spec::Support::Helpers::Features::SortingHelpers include Spec::Support::Helpers::Features::SortingHelpers
include FilteredSearchHelpers
let(:user) { create(:user) } let(:user) { create(:user) }
let(:project) { create(:project) } let(:project) { create(:project) }
...@@ -25,27 +26,21 @@ describe 'Dashboard Issues filtering', :js do ...@@ -25,27 +26,21 @@ describe 'Dashboard Issues filtering', :js do
context 'filtering by milestone' do context 'filtering by milestone' do
it 'shows all issues with no milestone' do it 'shows all issues with no milestone' do
show_milestone_dropdown input_filtered_search("milestone:none")
click_link 'No Milestone'
expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1) expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1)
expect(page).to have_selector('.issue', count: 1) expect(page).to have_selector('.issue', count: 1)
end end
it 'shows all issues with the selected milestone' do it 'shows all issues with the selected milestone' do
show_milestone_dropdown input_filtered_search("milestone:%\"#{milestone.title}\"")
page.within '.dropdown-content' do
click_link milestone.title
end
expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1) expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1)
expect(page).to have_selector('.issue', count: 1) expect(page).to have_selector('.issue', count: 1)
end end
it 'updates atom feed link' do it 'updates atom feed link' do
visit_issues(milestone_title: '', assignee_id: user.id) visit_issues(milestone_title: '', assignee_username: user.username)
link = find('.nav-controls a[title="Subscribe to RSS feed"]') link = find('.nav-controls a[title="Subscribe to RSS feed"]')
params = CGI.parse(URI.parse(link[:href]).query) params = CGI.parse(URI.parse(link[:href]).query)
...@@ -54,10 +49,10 @@ describe 'Dashboard Issues filtering', :js do ...@@ -54,10 +49,10 @@ describe 'Dashboard Issues filtering', :js do
expect(params).to include('feed_token' => [user.feed_token]) expect(params).to include('feed_token' => [user.feed_token])
expect(params).to include('milestone_title' => ['']) expect(params).to include('milestone_title' => [''])
expect(params).to include('assignee_id' => [user.id.to_s]) expect(params).to include('assignee_username' => [user.username.to_s])
expect(auto_discovery_params).to include('feed_token' => [user.feed_token]) expect(auto_discovery_params).to include('feed_token' => [user.feed_token])
expect(auto_discovery_params).to include('milestone_title' => ['']) expect(auto_discovery_params).to include('milestone_title' => [''])
expect(auto_discovery_params).to include('assignee_id' => [user.id.to_s]) expect(auto_discovery_params).to include('assignee_username' => [user.username.to_s])
end end
end end
...@@ -66,10 +61,7 @@ describe 'Dashboard Issues filtering', :js do ...@@ -66,10 +61,7 @@ describe 'Dashboard Issues filtering', :js do
let!(:label_link) { create(:label_link, label: label, target: issue) } let!(:label_link) { create(:label_link, label: label, target: issue) }
it 'shows all issues with the selected label' do it 'shows all issues with the selected label' do
page.within '.labels-filter' do input_filtered_search("label:~#{label.title}")
find('.dropdown').click
click_link label.title
end
page.within 'ul.content-list' do page.within 'ul.content-list' do
expect(page).to have_content issue.title expect(page).to have_content issue.title
...@@ -80,12 +72,12 @@ describe 'Dashboard Issues filtering', :js do ...@@ -80,12 +72,12 @@ describe 'Dashboard Issues filtering', :js do
context 'sorting' do context 'sorting' do
before do before do
visit_issues(assignee_id: user.id) visit_issues(assignee_username: user.username)
end end
it 'remembers last sorting value' do it 'remembers last sorting value' do
sort_by('Created date') sort_by('Created date')
visit_issues(assignee_id: user.id) visit_issues(assignee_username: user.username)
expect(find('.issues-filters')).to have_content('Created date') expect(find('.issues-filters')).to have_content('Created date')
end end
...@@ -98,11 +90,6 @@ describe 'Dashboard Issues filtering', :js do ...@@ -98,11 +90,6 @@ describe 'Dashboard Issues filtering', :js do
end end
end end
def show_milestone_dropdown
click_button 'Milestone'
expect(page).to have_selector('.dropdown-content', visible: true)
end
def visit_issues(*args) def visit_issues(*args)
visit issues_dashboard_path(*args) visit issues_dashboard_path(*args)
end end
......
require 'spec_helper' require 'spec_helper'
RSpec.describe 'Dashboard Issues' do RSpec.describe 'Dashboard Issues' do
include FilteredSearchHelpers
let(:current_user) { create :user } let(:current_user) { create :user }
let(:user) { current_user } # Shared examples depend on this being available let(:user) { current_user } # Shared examples depend on this being available
let!(:public_project) { create(:project, :public) } let!(:public_project) { create(:project, :public) }
...@@ -14,7 +16,7 @@ RSpec.describe 'Dashboard Issues' do ...@@ -14,7 +16,7 @@ RSpec.describe 'Dashboard Issues' do
before do before do
[project, project_with_issues_disabled].each { |project| project.add_maintainer(current_user) } [project, project_with_issues_disabled].each { |project| project.add_maintainer(current_user) }
sign_in(current_user) sign_in(current_user)
visit issues_dashboard_path(assignee_id: current_user.id) visit issues_dashboard_path(assignee_username: current_user.username)
end end
describe 'issues' do describe 'issues' do
...@@ -24,26 +26,9 @@ RSpec.describe 'Dashboard Issues' do ...@@ -24,26 +26,9 @@ RSpec.describe 'Dashboard Issues' do
expect(page).not_to have_content(other_issue.title) expect(page).not_to have_content(other_issue.title)
end end
it 'shows checkmark when unassigned is selected for assignee', :js do
find('.js-assignee-search').click
find('li', text: 'Unassigned').click
find('.js-assignee-search').click
expect(find('li[data-user-id="0"] a.is-active')).to be_visible
end
it 'shows issues when current user is author', :js do it 'shows issues when current user is author', :js do
execute_script("document.querySelector('#assignee_id').value=''") reset_filters
find('.js-author-search', match: :first).click input_filtered_search("author:#{current_user.to_reference}")
expect(find('li[data-user-id="null"] a.is-active')).to be_visible
find('.dropdown-menu-author li a', match: :first, text: current_user.to_reference).click
find('.js-author-search', match: :first).click
page.within '.dropdown-menu-user' do
expect(find('.dropdown-menu-author li a.is-active', match: :first, text: current_user.to_reference)).to be_visible
end
expect(page).to have_content(authored_issue.title) expect(page).to have_content(authored_issue.title)
expect(page).to have_content(authored_issue_on_public_project.title) expect(page).to have_content(authored_issue_on_public_project.title)
...@@ -53,7 +38,7 @@ RSpec.describe 'Dashboard Issues' do ...@@ -53,7 +38,7 @@ RSpec.describe 'Dashboard Issues' do
it 'state filter tabs work' do it 'state filter tabs work' do
find('#state-closed').click find('#state-closed').click
expect(page).to have_current_path(issues_dashboard_url(assignee_id: current_user.id, state: 'closed'), url: true) expect(page).to have_current_path(issues_dashboard_url(assignee_username: current_user.username, state: 'closed'), url: true)
end end
it_behaves_like "it has an RSS button with current_user's feed token" it_behaves_like "it has an RSS button with current_user's feed token"
......
require 'spec_helper' require 'spec_helper'
describe 'Dashboard > label filter', :js do describe 'Dashboard > label filter', :js do
include FilteredSearchHelpers
let(:filtered_search) { find('.filtered-search') }
let(:filter_dropdown) { find("#js-dropdown-label .filter-dropdown") }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:project) { create(:project, name: 'test', namespace: user.namespace) } let(:project) { create(:project, name: 'test', namespace: user.namespace) }
let(:project2) { create(:project, name: 'test2', path: 'test2', namespace: user.namespace) } let(:project2) { create(:project, name: 'test2', path: 'test2', namespace: user.namespace) }
...@@ -13,17 +18,15 @@ describe 'Dashboard > label filter', :js do ...@@ -13,17 +18,15 @@ describe 'Dashboard > label filter', :js do
sign_in(user) sign_in(user)
visit issues_dashboard_path visit issues_dashboard_path
init_label_search
end end
context 'duplicate labels' do context 'duplicate labels' do
it 'removes duplicate labels' do it 'removes duplicate labels' do
page.within('.labels-filter') do filtered_search.send_keys('bu')
click_button 'Label'
end
page.within('.dropdown-menu-labels') do expect(filter_dropdown).to have_selector('.filter-dropdown-item', text: 'bug', count: 1)
expect(page).to have_selector('.dropdown-content a', text: 'bug', count: 1)
end
end end
end end
end end
...@@ -2,7 +2,7 @@ require 'spec_helper' ...@@ -2,7 +2,7 @@ require 'spec_helper'
describe 'Dashboard Merge Requests' do describe 'Dashboard Merge Requests' do
include Spec::Support::Helpers::Features::SortingHelpers include Spec::Support::Helpers::Features::SortingHelpers
include FilterItemSelectHelper include FilteredSearchHelpers
include ProjectForksHelper include ProjectForksHelper
let(:current_user) { create :user } let(:current_user) { create :user }
...@@ -36,7 +36,7 @@ describe 'Dashboard Merge Requests' do ...@@ -36,7 +36,7 @@ describe 'Dashboard Merge Requests' do
context 'no merge requests exist' do context 'no merge requests exist' do
it 'shows an empty state' do it 'shows an empty state' do
visit merge_requests_dashboard_path(assignee_id: current_user.id) visit merge_requests_dashboard_path(assignee_username: current_user.username)
expect(page).to have_selector('.empty-state') expect(page).to have_selector('.empty-state')
end end
...@@ -79,7 +79,7 @@ describe 'Dashboard Merge Requests' do ...@@ -79,7 +79,7 @@ describe 'Dashboard Merge Requests' do
end end
before do before do
visit merge_requests_dashboard_path(assignee_id: current_user.id) visit merge_requests_dashboard_path(assignee_username: current_user.username)
end end
it 'shows assigned merge requests' do it 'shows assigned merge requests' do
...@@ -92,8 +92,8 @@ describe 'Dashboard Merge Requests' do ...@@ -92,8 +92,8 @@ describe 'Dashboard Merge Requests' do
end end
it 'shows authored merge requests', :js do it 'shows authored merge requests', :js do
filter_item_select('Any Assignee', '.js-assignee-search') reset_filters
filter_item_select(current_user.to_reference, '.js-author-search') input_filtered_search("author:#{current_user.to_reference}")
expect(page).to have_content(authored_merge_request.title) expect(page).to have_content(authored_merge_request.title)
expect(page).to have_content(authored_merge_request_from_fork.title) expect(page).to have_content(authored_merge_request_from_fork.title)
...@@ -104,8 +104,7 @@ describe 'Dashboard Merge Requests' do ...@@ -104,8 +104,7 @@ describe 'Dashboard Merge Requests' do
end end
it 'shows error message without filter', :js do it 'shows error message without filter', :js do
filter_item_select('Any Assignee', '.js-assignee-search') reset_filters
filter_item_select('Any Author', '.js-author-search')
expect(page).to have_content('Please select at least one filter to see results') expect(page).to have_content('Please select at least one filter to see results')
end end
...@@ -113,7 +112,7 @@ describe 'Dashboard Merge Requests' do ...@@ -113,7 +112,7 @@ describe 'Dashboard Merge Requests' do
it 'shows sorted merge requests' do it 'shows sorted merge requests' do
sort_by('Created date') sort_by('Created date')
visit merge_requests_dashboard_path(assignee_id: current_user.id) visit merge_requests_dashboard_path(assignee_username: current_user.username)
expect(find('.issues-filters')).to have_content('Created date') expect(find('.issues-filters')).to have_content('Created date')
end end
......
require 'spec_helper'
describe 'Dashboard > milestone filter', :js do
include FilterItemSelectHelper
let(:user) { create(:user) }
let(:project) { create(:project, name: 'test', namespace: user.namespace) }
let(:milestone) { create(:milestone, title: 'v1.0', project: project) }
let(:milestone2) { create(:milestone, title: 'v2.0', project: project) }
let!(:issue) { create :issue, author: user, project: project, milestone: milestone }
let!(:issue2) { create :issue, author: user, project: project, milestone: milestone2 }
dropdown_toggle_button = '.js-milestone-select'
before do
sign_in(user)
end
context 'default state' do
it 'shows issues with Any Milestone' do
visit issues_dashboard_path(author_id: user.id)
page.all('.issue-info').each do |issue_info|
expect(issue_info.text).to match(/v\d.0/)
end
end
end
context 'filtering by milestone' do
before do
visit issues_dashboard_path(author_id: user.id)
filter_item_select('v1.0', dropdown_toggle_button)
find(dropdown_toggle_button).click
wait_for_requests
end
it 'shows issues with Milestone v1.0' do
expect(find('.issues-list')).to have_selector('.issue', count: 1)
expect(find('.milestone-filter .dropdown-content')).to have_selector('a.is-active', count: 1)
end
it 'should not change active Milestone unless clicked' do
page.within '.milestone-filter' do
expect(find('.dropdown-content')).to have_selector('a.is-active', count: 1)
find('.dropdown-menu-close').click
expect(page).not_to have_selector('.dropdown.open')
find(dropdown_toggle_button).click
expect(find('.dropdown-content')).to have_selector('a.is-active', count: 1)
expect(find('.dropdown-content a.is-active')).to have_content('v1.0')
end
end
end
context 'with milestone filter in URL' do
before do
visit issues_dashboard_path(author_id: user.id, milestone_title: milestone.title)
find(dropdown_toggle_button).click
wait_for_requests
end
it 'has milestone selected' do
expect(find('.milestone-filter .dropdown-content')).to have_css('.is-active', text: milestone.title)
end
it 'removes milestone filter from URL after clicking "Any Milestone"' do
expect(current_url).to include("milestone_title=#{milestone.title}")
find('.milestone-filter .dropdown-content li', text: 'Any Milestone').click
expect(current_url).not_to include('milestone_title')
end
end
end
...@@ -26,7 +26,7 @@ describe "User sorts issues" do ...@@ -26,7 +26,7 @@ describe "User sorts issues" do
click_link('Milestone') click_link('Milestone')
end end
visit(issues_dashboard_path(assignee_id: user.id)) visit(issues_dashboard_path(assignee_username: user.username))
expect(find('.issues-filters a.is-active')).to have_content('Milestone') expect(find('.issues-filters a.is-active')).to have_content('Milestone')
......
...@@ -25,7 +25,7 @@ describe 'User sorts merge requests' do ...@@ -25,7 +25,7 @@ describe 'User sorts merge requests' do
click_link('Milestone') click_link('Milestone')
end end
visit(merge_requests_dashboard_path(assignee_id: user.id)) visit(merge_requests_dashboard_path(assignee_username: user.username))
expect(find('.issues-filters a.is-active')).to have_content('Milestone') expect(find('.issues-filters a.is-active')).to have_content('Milestone')
...@@ -41,7 +41,7 @@ describe 'User sorts merge requests' do ...@@ -41,7 +41,7 @@ describe 'User sorts merge requests' do
it 'fallbacks to issuable_sort cookie key when remembering the sorting option' do it 'fallbacks to issuable_sort cookie key when remembering the sorting option' do
set_cookie('issuable_sort', 'milestone') set_cookie('issuable_sort', 'milestone')
visit(merge_requests_dashboard_path(assignee_id: user.id)) visit(merge_requests_dashboard_path(assignee_username: user.username))
expect(find('.issues-filters a.is-active')).to have_content('Milestone') expect(find('.issues-filters a.is-active')).to have_content('Milestone')
end end
......
...@@ -21,13 +21,17 @@ describe 'User uses header search field' do ...@@ -21,13 +21,17 @@ describe 'User uses header search field' do
it 'shows assigned issues' do it 'shows assigned issues' do
find('.search-input-container .dropdown-menu').click_link('Issues assigned to me') find('.search-input-container .dropdown-menu').click_link('Issues assigned to me')
expect(find('.js-assignee-search')).to have_content(user.name) expect(page).to have_selector('.filtered-search')
expect_tokens([assignee_token(user.name)])
expect_filtered_search_input_empty
end end
it 'shows created issues' do it 'shows created issues' do
find('.search-input-container .dropdown-menu').click_link("Issues I've created") find('.search-input-container .dropdown-menu').click_link("Issues I've created")
expect(find('.js-author-search')).to have_content(user.name) expect(page).to have_selector('.filtered-search')
expect_tokens([author_token(user.name)])
expect_filtered_search_input_empty
end end
end end
...@@ -37,13 +41,17 @@ describe 'User uses header search field' do ...@@ -37,13 +41,17 @@ describe 'User uses header search field' do
it 'shows assigned merge requests' do it 'shows assigned merge requests' do
find('.search-input-container .dropdown-menu').click_link('Merge requests assigned to me') find('.search-input-container .dropdown-menu').click_link('Merge requests assigned to me')
expect(find('.js-assignee-search')).to have_content(user.name) expect(page).to have_selector('.filtered-search')
expect_tokens([assignee_token(user.name)])
expect_filtered_search_input_empty
end end
it 'shows created merge requests' do it 'shows created merge requests' do
find('.search-input-container .dropdown-menu').click_link("Merge requests I've created") find('.search-input-container .dropdown-menu').click_link("Merge requests I've created")
expect(find('.js-author-search')).to have_content(user.name) expect(page).to have_selector('.filtered-search')
expect_tokens([author_token(user.name)])
expect_filtered_search_input_empty
end end
end end
end end
......
...@@ -109,16 +109,16 @@ describe('Search autocomplete dropdown', () => { ...@@ -109,16 +109,16 @@ describe('Search autocomplete dropdown', () => {
assertLinks = function(list, issuesPath, mrsPath) { assertLinks = function(list, issuesPath, mrsPath) {
if (issuesPath) { if (issuesPath) {
const issuesAssignedToMeLink = `a[href="${issuesPath}/?assignee_id=${userId}"]`; const issuesAssignedToMeLink = `a[href="${issuesPath}/?assignee_username=${userName}"]`;
const issuesIHaveCreatedLink = `a[href="${issuesPath}/?author_id=${userId}"]`; const issuesIHaveCreatedLink = `a[href="${issuesPath}/?author_username=${userName}"]`;
expect(list.find(issuesAssignedToMeLink).length).toBe(1); expect(list.find(issuesAssignedToMeLink).length).toBe(1);
expect(list.find(issuesAssignedToMeLink).text()).toBe('Issues assigned to me'); expect(list.find(issuesAssignedToMeLink).text()).toBe('Issues assigned to me');
expect(list.find(issuesIHaveCreatedLink).length).toBe(1); expect(list.find(issuesIHaveCreatedLink).length).toBe(1);
expect(list.find(issuesIHaveCreatedLink).text()).toBe("Issues I've created"); expect(list.find(issuesIHaveCreatedLink).text()).toBe("Issues I've created");
} }
const mrsAssignedToMeLink = `a[href="${mrsPath}/?assignee_id=${userId}"]`; const mrsAssignedToMeLink = `a[href="${mrsPath}/?assignee_username=${userName}"]`;
const mrsIHaveCreatedLink = `a[href="${mrsPath}/?author_id=${userId}"]`; const mrsIHaveCreatedLink = `a[href="${mrsPath}/?author_username=${userName}"]`;
expect(list.find(mrsAssignedToMeLink).length).toBe(1); expect(list.find(mrsAssignedToMeLink).length).toBe(1);
expect(list.find(mrsAssignedToMeLink).text()).toBe('Merge requests assigned to me'); expect(list.find(mrsAssignedToMeLink).text()).toBe('Merge requests assigned to me');
......
# Helper allows you to select value from filter-items
#
# Params
# value - value for select
# selector - css selector of item
#
# Usage:
#
# filter_item_select('Any Author', '.js-author-search')
#
module FilterItemSelectHelper
def filter_item_select(value, selector)
find(selector).click
wait_for_requests
page.within('.dropdown-content') do
click_link value
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment