Fix tests
This commit is contained in:
parent
ee4a7811a0
commit
91f235df08
|
|
@ -253,7 +253,6 @@ export class SearchAutocomplete {
|
|||
}
|
||||
|
||||
getCategoryContents() {
|
||||
const userId = gon.current_user_id;
|
||||
const userName = gon.current_username;
|
||||
const { projectOptions, groupOptions, dashboardOptions } = gl;
|
||||
|
||||
|
|
@ -279,21 +278,21 @@ export class SearchAutocomplete {
|
|||
const issueItems = [
|
||||
{
|
||||
text: s__('SearchAutocomplete|Issues assigned to me'),
|
||||
url: `${issuesPath}/?assignee_id=${userId}`,
|
||||
url: `${issuesPath}/?assignee_username=${userName}`,
|
||||
},
|
||||
{
|
||||
text: s__("SearchAutocomplete|Issues I've created"),
|
||||
url: `${issuesPath}/?author_id=${userId}`,
|
||||
url: `${issuesPath}/?author_username=${userName}`,
|
||||
},
|
||||
];
|
||||
const mergeRequestItems = [
|
||||
{
|
||||
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"),
|
||||
url: `${mrPath}/?author_id=${userId}`,
|
||||
url: `${mrPath}/?author_username=${userName}`,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ class DashboardController < Dashboard::ApplicationController
|
|||
include MergeRequestsAction
|
||||
|
||||
FILTER_PARAMS = [
|
||||
# author_id and assignee_id are kept so old RSS links still work
|
||||
:author_id,
|
||||
:assignee_id,
|
||||
:author_username,
|
||||
:assignee_username,
|
||||
:milestone_title,
|
||||
|
|
|
|||
|
|
@ -45,9 +45,9 @@ class RootController < Dashboard::ProjectsController
|
|||
when 'todos'
|
||||
redirect_to(dashboard_todos_path)
|
||||
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'
|
||||
redirect_to(merge_requests_dashboard_path(assignee_id: current_user.id))
|
||||
redirect_to(merge_requests_dashboard_path(assignee_username: current_user.username))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -178,7 +178,9 @@ module ApplicationHelper
|
|||
scope: params[:scope],
|
||||
milestone_title: params[:milestone_title],
|
||||
assignee_id: params[:assignee_id],
|
||||
assignee_username: params[:assignee_username],
|
||||
author_id: params[:author_id],
|
||||
author_username: params[:author_username],
|
||||
search: params[:search],
|
||||
label_name: params[:label_name]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- @hide_top_links = true
|
||||
- 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
|
||||
= auto_discovery_link_tag(:atom, safe_params.merge(rss_url_options).to_h, title: "#{current_user.name} issues")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- @hide_top_links = true
|
||||
- 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
|
||||
%h1.page-title= _('Merge Requests')
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ describe RootController do
|
|||
it 'redirects to their assigned issues' do
|
||||
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
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ describe RootController do
|
|||
it 'redirects to their assigned merge requests' do
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -25,35 +25,35 @@ describe "Dashboard Issues Feed" do
|
|||
it "renders atom feed via personal access token" do
|
||||
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(body).to have_selector('title', text: "#{user.name} issues")
|
||||
end
|
||||
|
||||
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(body).to have_selector('title', text: "#{user.name} issues")
|
||||
end
|
||||
|
||||
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"]')
|
||||
params = CGI.parse(URI.parse(link[:href]).query)
|
||||
|
||||
expect(params).to include('feed_token' => [user.feed_token])
|
||||
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
|
||||
|
||||
context "issue with basic fields" do
|
||||
let!(:issue2) { create(:issue, author: user, assignees: [assignee], project: project2, description: 'test desc') }
|
||||
|
||||
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}')]")
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ describe "Dashboard Issues Feed" do
|
|||
end
|
||||
|
||||
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}')]")
|
||||
|
||||
|
|
|
|||
|
|
@ -45,11 +45,11 @@ describe 'Navigation bar counter', :use_clean_rails_memory_store_caching do
|
|||
end
|
||||
|
||||
def issues_path
|
||||
issues_dashboard_path(assignee_id: user.id)
|
||||
issues_dashboard_path(assignee_username: user.username)
|
||||
end
|
||||
|
||||
def merge_requests_path
|
||||
merge_requests_dashboard_path(assignee_id: user.id)
|
||||
merge_requests_dashboard_path(assignee_username: user.username)
|
||||
end
|
||||
|
||||
def expect_counters(issuable_type, count)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ require 'spec_helper'
|
|||
|
||||
describe 'Dashboard Issues filtering', :js do
|
||||
include Spec::Support::Helpers::Features::SortingHelpers
|
||||
include FilteredSearchHelpers
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project) }
|
||||
|
|
@ -25,27 +26,21 @@ describe 'Dashboard Issues filtering', :js do
|
|||
|
||||
context 'filtering by milestone' do
|
||||
it 'shows all issues with no milestone' do
|
||||
show_milestone_dropdown
|
||||
|
||||
click_link 'No Milestone'
|
||||
input_filtered_search("milestone:none")
|
||||
|
||||
expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1)
|
||||
expect(page).to have_selector('.issue', count: 1)
|
||||
end
|
||||
|
||||
it 'shows all issues with the selected milestone' do
|
||||
show_milestone_dropdown
|
||||
|
||||
page.within '.dropdown-content' do
|
||||
click_link milestone.title
|
||||
end
|
||||
input_filtered_search("milestone:%\"#{milestone.title}\"")
|
||||
|
||||
expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1)
|
||||
expect(page).to have_selector('.issue', count: 1)
|
||||
end
|
||||
|
||||
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"]')
|
||||
params = CGI.parse(URI.parse(link[:href]).query)
|
||||
|
|
@ -54,10 +49,10 @@ describe 'Dashboard Issues filtering', :js do
|
|||
|
||||
expect(params).to include('feed_token' => [user.feed_token])
|
||||
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('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
|
||||
|
||||
|
|
@ -66,10 +61,7 @@ describe 'Dashboard Issues filtering', :js do
|
|||
let!(:label_link) { create(:label_link, label: label, target: issue) }
|
||||
|
||||
it 'shows all issues with the selected label' do
|
||||
page.within '.labels-filter' do
|
||||
find('.dropdown').click
|
||||
click_link label.title
|
||||
end
|
||||
input_filtered_search("label:~#{label.title}")
|
||||
|
||||
page.within 'ul.content-list' do
|
||||
expect(page).to have_content issue.title
|
||||
|
|
@ -80,12 +72,12 @@ describe 'Dashboard Issues filtering', :js do
|
|||
|
||||
context 'sorting' do
|
||||
before do
|
||||
visit_issues(assignee_id: user.id)
|
||||
visit_issues(assignee_username: user.username)
|
||||
end
|
||||
|
||||
it 'remembers last sorting value' do
|
||||
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')
|
||||
end
|
||||
|
|
@ -98,11 +90,6 @@ describe 'Dashboard Issues filtering', :js do
|
|||
end
|
||||
end
|
||||
|
||||
def show_milestone_dropdown
|
||||
click_button 'Milestone'
|
||||
expect(page).to have_selector('.dropdown-content', visible: true)
|
||||
end
|
||||
|
||||
def visit_issues(*args)
|
||||
visit issues_dashboard_path(*args)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe 'Dashboard Issues' do
|
||||
include FilteredSearchHelpers
|
||||
|
||||
let(:current_user) { create :user }
|
||||
let(:user) { current_user } # Shared examples depend on this being available
|
||||
let!(:public_project) { create(:project, :public) }
|
||||
|
|
@ -14,7 +16,7 @@ RSpec.describe 'Dashboard Issues' do
|
|||
before do
|
||||
[project, project_with_issues_disabled].each { |project| project.add_maintainer(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
|
||||
|
||||
describe 'issues' do
|
||||
|
|
@ -24,26 +26,9 @@ RSpec.describe 'Dashboard Issues' do
|
|||
expect(page).not_to have_content(other_issue.title)
|
||||
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
|
||||
execute_script("document.querySelector('#assignee_id').value=''")
|
||||
find('.js-author-search', match: :first).click
|
||||
|
||||
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
|
||||
reset_filters
|
||||
input_filtered_search("author:#{current_user.to_reference}")
|
||||
|
||||
expect(page).to have_content(authored_issue.title)
|
||||
expect(page).to have_content(authored_issue_on_public_project.title)
|
||||
|
|
@ -53,7 +38,7 @@ RSpec.describe 'Dashboard Issues' do
|
|||
|
||||
it 'state filter tabs work' do
|
||||
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
|
||||
|
||||
it_behaves_like "it has an RSS button with current_user's feed token"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
require 'spec_helper'
|
||||
|
||||
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(:project) { create(:project, name: 'test', namespace: user.namespace) }
|
||||
let(:project2) { create(:project, name: 'test2', path: 'test2', namespace: user.namespace) }
|
||||
|
|
@ -13,17 +18,15 @@ describe 'Dashboard > label filter', :js do
|
|||
|
||||
sign_in(user)
|
||||
visit issues_dashboard_path
|
||||
|
||||
init_label_search
|
||||
end
|
||||
|
||||
context 'duplicate labels' do
|
||||
it 'removes duplicate labels' do
|
||||
page.within('.labels-filter') do
|
||||
click_button 'Label'
|
||||
end
|
||||
filtered_search.send_keys('bu')
|
||||
|
||||
page.within('.dropdown-menu-labels') do
|
||||
expect(page).to have_selector('.dropdown-content a', text: 'bug', count: 1)
|
||||
end
|
||||
expect(filter_dropdown).to have_selector('.filter-dropdown-item', text: 'bug', count: 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
describe 'Dashboard Merge Requests' do
|
||||
include Spec::Support::Helpers::Features::SortingHelpers
|
||||
include FilterItemSelectHelper
|
||||
include FilteredSearchHelpers
|
||||
include ProjectForksHelper
|
||||
|
||||
let(:current_user) { create :user }
|
||||
|
|
@ -36,7 +36,7 @@ describe 'Dashboard Merge Requests' do
|
|||
|
||||
context 'no merge requests exist' 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')
|
||||
end
|
||||
|
|
@ -79,7 +79,7 @@ describe 'Dashboard Merge Requests' do
|
|||
end
|
||||
|
||||
before do
|
||||
visit merge_requests_dashboard_path(assignee_id: current_user.id)
|
||||
visit merge_requests_dashboard_path(assignee_username: current_user.username)
|
||||
end
|
||||
|
||||
it 'shows assigned merge requests' do
|
||||
|
|
@ -92,8 +92,8 @@ describe 'Dashboard Merge Requests' do
|
|||
end
|
||||
|
||||
it 'shows authored merge requests', :js do
|
||||
filter_item_select('Any Assignee', '.js-assignee-search')
|
||||
filter_item_select(current_user.to_reference, '.js-author-search')
|
||||
reset_filters
|
||||
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_from_fork.title)
|
||||
|
|
@ -104,8 +104,7 @@ describe 'Dashboard Merge Requests' do
|
|||
end
|
||||
|
||||
it 'shows error message without filter', :js do
|
||||
filter_item_select('Any Assignee', '.js-assignee-search')
|
||||
filter_item_select('Any Author', '.js-author-search')
|
||||
reset_filters
|
||||
|
||||
expect(page).to have_content('Please select at least one filter to see results')
|
||||
end
|
||||
|
|
@ -113,7 +112,7 @@ describe 'Dashboard Merge Requests' do
|
|||
it 'shows sorted merge requests' do
|
||||
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')
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,77 +0,0 @@
|
|||
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
|
|||
click_link('Milestone')
|
||||
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')
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe 'User sorts merge requests' do
|
|||
click_link('Milestone')
|
||||
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')
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ describe 'User sorts merge requests' do
|
|||
it 'fallbacks to issuable_sort cookie key when remembering the sorting option' do
|
||||
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')
|
||||
end
|
||||
|
|
|
|||
|
|
@ -21,13 +21,17 @@ describe 'User uses header search field' do
|
|||
it 'shows assigned issues' do
|
||||
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
|
||||
|
||||
it 'shows created issues' do
|
||||
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
|
||||
|
||||
|
|
@ -37,13 +41,17 @@ describe 'User uses header search field' do
|
|||
it 'shows assigned merge requests' do
|
||||
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
|
||||
|
||||
it 'shows created merge requests' do
|
||||
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
|
||||
|
|
|
|||
|
|
@ -109,16 +109,16 @@ describe('Search autocomplete dropdown', () => {
|
|||
|
||||
assertLinks = function(list, issuesPath, mrsPath) {
|
||||
if (issuesPath) {
|
||||
const issuesAssignedToMeLink = `a[href="${issuesPath}/?assignee_id=${userId}"]`;
|
||||
const issuesIHaveCreatedLink = `a[href="${issuesPath}/?author_id=${userId}"]`;
|
||||
const issuesAssignedToMeLink = `a[href="${issuesPath}/?assignee_username=${userName}"]`;
|
||||
const issuesIHaveCreatedLink = `a[href="${issuesPath}/?author_username=${userName}"]`;
|
||||
|
||||
expect(list.find(issuesAssignedToMeLink).length).toBe(1);
|
||||
expect(list.find(issuesAssignedToMeLink).text()).toBe('Issues assigned to me');
|
||||
expect(list.find(issuesIHaveCreatedLink).length).toBe(1);
|
||||
expect(list.find(issuesIHaveCreatedLink).text()).toBe("Issues I've created");
|
||||
}
|
||||
const mrsAssignedToMeLink = `a[href="${mrsPath}/?assignee_id=${userId}"]`;
|
||||
const mrsIHaveCreatedLink = `a[href="${mrsPath}/?author_id=${userId}"]`;
|
||||
const mrsAssignedToMeLink = `a[href="${mrsPath}/?assignee_username=${userName}"]`;
|
||||
const mrsIHaveCreatedLink = `a[href="${mrsPath}/?author_username=${userName}"]`;
|
||||
|
||||
expect(list.find(mrsAssignedToMeLink).length).toBe(1);
|
||||
expect(list.find(mrsAssignedToMeLink).text()).toBe('Merge requests assigned to me');
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
# 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
|
||||
Loading…
Reference in New Issue