diff options
Diffstat (limited to 'spec/features/issues')
13 files changed, 45 insertions, 52 deletions
diff --git a/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb b/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb index 077c363f78b..507d427bf0b 100644 --- a/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb +++ b/spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb @@ -27,7 +27,7 @@ RSpec.describe 'Resolving all open threads in a merge request from an issue', :j it 'shows a button to resolve all threads by creating a new issue' do within('.line-resolve-all-container') do - expect(page).to have_selector resolve_all_discussions_link_selector( title: "Resolve all threads in new issue" ) + expect(page).to have_selector resolve_all_discussions_link_selector( title: "Create issue to resolve all threads" ) end end @@ -38,7 +38,7 @@ RSpec.describe 'Resolving all open threads in a merge request from an issue', :j it 'hides the link for creating a new issue' do expect(page).not_to have_selector resolve_all_discussions_link_selector - expect(page).not_to have_content "Resolve all threads in new issue" + expect(page).not_to have_content "Create issue to resolve all threads" end end @@ -62,7 +62,7 @@ RSpec.describe 'Resolving all open threads in a merge request from an issue', :j end it 'does not show a link to create a new issue' do - expect(page).not_to have_link 'Resolve all threads in new issue' + expect(page).not_to have_link 'Create issue to resolve all threads' end end @@ -77,14 +77,14 @@ RSpec.describe 'Resolving all open threads in a merge request from an issue', :j it 'has a link to resolve all threads by creating an issue' do page.within '.mr-widget-body' do - expect(page).to have_link 'Resolve all threads in new issue', href: new_project_issue_path(project, merge_request_to_resolve_discussions_of: merge_request.iid) + expect(page).to have_link 'Create issue to resolve all threads', href: new_project_issue_path(project, merge_request_to_resolve_discussions_of: merge_request.iid) end end context 'creating an issue for threads' do before do page.within '.mr-widget-body' do - page.click_link 'Resolve all threads in new issue', href: new_project_issue_path(project, merge_request_to_resolve_discussions_of: merge_request.iid) + page.click_link 'Create issue to resolve all threads', href: new_project_issue_path(project, merge_request_to_resolve_discussions_of: merge_request.iid) wait_for_all_requests end diff --git a/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb b/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb index 3ff8fc5ecca..0de15d3d304 100644 --- a/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb +++ b/spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb @@ -9,7 +9,7 @@ RSpec.describe 'Resolve an open thread in a merge request by creating an issue', let!(:discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion } def resolve_discussion_selector - title = 'Resolve this thread in a new issue' + title = 'Create issue to resolve thread' url = new_project_issue_path(project, discussion_to_resolve: discussion.id, merge_request_to_resolve_discussions_of: merge_request.iid) "a[title=\"#{title}\"][href=\"#{url}\"]" end diff --git a/spec/features/issues/csv_spec.rb b/spec/features/issues/csv_spec.rb index 51e0d54ca5e..b4c737495b4 100644 --- a/spec/features/issues/csv_spec.rb +++ b/spec/features/issues/csv_spec.rb @@ -44,7 +44,7 @@ RSpec.describe 'Issues csv', :js do request_csv expect(page).to have_content 'CSV export has started' - expect(page).to have_content "emailed to #{user.notification_email}" + expect(page).to have_content "emailed to #{user.notification_email_or_default}" end it 'includes a csv attachment', :sidekiq_might_not_need_inline do diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb index 88a7b890daa..edf3df7c16e 100644 --- a/spec/features/issues/filtered_search/filter_issues_spec.rb +++ b/spec/features/issues/filtered_search/filter_issues_spec.rb @@ -565,21 +565,18 @@ RSpec.describe 'Filter issues', :js do end it 'maintains filter' do - # Closed - find('.issues-state-filters [data-state="closed"]').click + click_link 'Closed' wait_for_requests expect(page).to have_selector('.issues-list .issue', count: 1) expect(page).to have_link(closed_issue.title) - # Opened - find('.issues-state-filters [data-state="opened"]').click + click_link 'Open' wait_for_requests expect(page).to have_selector('.issues-list .issue', count: 4) - # All - find('.issues-state-filters [data-state="all"]').click + click_link 'All' wait_for_requests expect(page).to have_selector('.issues-list .issue', count: 5) diff --git a/spec/features/issues/filtered_search/search_bar_spec.rb b/spec/features/issues/filtered_search/search_bar_spec.rb index 1efcc329e32..60963d95ae5 100644 --- a/spec/features/issues/filtered_search/search_bar_spec.rb +++ b/spec/features/issues/filtered_search/search_bar_spec.rb @@ -89,7 +89,7 @@ RSpec.describe 'Search bar', :js do expect(find('#js-dropdown-hint')).to have_selector('.filter-dropdown .filter-dropdown-item', count: original_size) end - it 'resets the dropdown filters', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/9985' do + it 'resets the dropdown filters' do filtered_search.click hint_offset = get_left_style(find('#js-dropdown-hint')['style']) @@ -103,7 +103,7 @@ RSpec.describe 'Search bar', :js do find('.filtered-search-box .clear-search').click filtered_search.click - expect(find('#js-dropdown-hint')).to have_selector('.filter-dropdown .filter-dropdown-item', count: 6) + expect(find('#js-dropdown-hint')).to have_selector('.filter-dropdown .filter-dropdown-item', minimum: 6) expect(get_left_style(find('#js-dropdown-hint')['style'])).to eq(hint_offset) end end diff --git a/spec/features/issues/filtered_search/visual_tokens_spec.rb b/spec/features/issues/filtered_search/visual_tokens_spec.rb index 644d7cc4611..2d8587d886f 100644 --- a/spec/features/issues/filtered_search/visual_tokens_spec.rb +++ b/spec/features/issues/filtered_search/visual_tokens_spec.rb @@ -16,9 +16,6 @@ RSpec.describe 'Visual tokens', :js do let(:filtered_search) { find('.filtered-search') } let(:filter_author_dropdown) { find("#js-dropdown-author .filter-dropdown") } - let(:filter_assignee_dropdown) { find("#js-dropdown-assignee .filter-dropdown") } - let(:filter_milestone_dropdown) { find("#js-dropdown-milestone .filter-dropdown") } - let(:filter_label_dropdown) { find("#js-dropdown-label .filter-dropdown") } def is_input_focused page.evaluate_script("document.activeElement.classList.contains('filtered-search')") diff --git a/spec/features/issues/issue_detail_spec.rb b/spec/features/issues/issue_detail_spec.rb index a942a1a44f6..531c3634b5e 100644 --- a/spec/features/issues/issue_detail_spec.rb +++ b/spec/features/issues/issue_detail_spec.rb @@ -32,6 +32,21 @@ RSpec.describe 'Issue Detail', :js do end end + context 'when issue description has emojis' do + let(:issue) { create(:issue, project: project, author: user, description: 'hello world :100:') } + + before do + sign_in(user) + visit project_issue_path(project, issue) + end + + it 'renders gl-emoji tag' do + page.within('.description') do + expect(page).to have_selector('gl-emoji', count: 1) + end + end + end + context 'when issue description has xss snippet' do before do issue.update!(description: '![xss" onload=alert(1);//](a)') diff --git a/spec/features/issues/issue_sidebar_spec.rb b/spec/features/issues/issue_sidebar_spec.rb index e198d9d4ebb..bd4be755a92 100644 --- a/spec/features/issues/issue_sidebar_spec.rb +++ b/spec/features/issues/issue_sidebar_spec.rb @@ -117,7 +117,7 @@ RSpec.describe 'Issue Sidebar' do page.within '.dropdown-menu-user' do expect(page).to have_link('Invite members') - expect(page).to have_selector('[data-track-event="click_invite_members"]') + expect(page).to have_selector('[data-track-action="click_invite_members"]') expect(page).to have_selector('[data-track-label="edit_assignee"]') end diff --git a/spec/features/issues/resource_label_events_spec.rb b/spec/features/issues/resource_label_events_spec.rb index 33edf2f0b63..e08410efc0b 100644 --- a/spec/features/issues/resource_label_events_spec.rb +++ b/spec/features/issues/resource_label_events_spec.rb @@ -38,7 +38,7 @@ RSpec.describe 'List issue resource label events', :js do click_on 'Edit' wait_for_requests - labels.each { |label| click_link label } + labels.each { |label| click_on label } send_keys(:escape) wait_for_requests diff --git a/spec/features/issues/rss_spec.rb b/spec/features/issues/rss_spec.rb index 6c4498ea711..b20502ecc25 100644 --- a/spec/features/issues/rss_spec.rb +++ b/spec/features/issues/rss_spec.rb @@ -3,21 +3,24 @@ require 'spec_helper' RSpec.describe 'Project Issues RSS' do - let!(:user) { create(:user) } - let(:group) { create(:group) } - let(:project) { create(:project, group: group, visibility_level: Gitlab::VisibilityLevel::PUBLIC) } - let(:path) { project_issues_path(project) } + let_it_be(:user) { create(:user) } + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, group: group, visibility_level: Gitlab::VisibilityLevel::PUBLIC) } + let_it_be(:path) { project_issues_path(project) } + let_it_be(:issue) { create(:issue, project: project, assignees: [user]) } - before do - create(:issue, project: project, assignees: [user]) + before_all do group.add_developer(user) end context 'when signed in' do - let(:user) { create(:user) } + let_it_be(:user) { create(:user) } - before do + before_all do project.add_developer(user) + end + + before do sign_in(user) visit path end @@ -36,26 +39,6 @@ RSpec.describe 'Project Issues RSS' do end describe 'feeds' do - shared_examples 'updates atom feed link' do |type| - it "for #{type}" do - sign_in(user) - visit path - - link = find_link('Subscribe to RSS feed') - params = CGI.parse(URI.parse(link[:href]).query) - auto_discovery_link = find('link[type="application/atom+xml"]', visible: false) - auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query) - - expected = { - 'feed_token' => [user.feed_token], - 'assignee_id' => [user.id.to_s] - } - - expect(params).to include(expected) - expect(auto_discovery_params).to include(expected) - end - end - it_behaves_like 'updates atom feed link', :project do let(:path) { project_issues_path(project, assignee_id: user.id) } end diff --git a/spec/features/issues/user_edits_issue_spec.rb b/spec/features/issues/user_edits_issue_spec.rb index e4bba706453..63c36a20adc 100644 --- a/spec/features/issues/user_edits_issue_spec.rb +++ b/spec/features/issues/user_edits_issue_spec.rb @@ -15,6 +15,7 @@ RSpec.describe "Issues > User edits issue", :js do context 'with authorized user' do before do + stub_feature_flags(labels_widget: false) project.add_developer(user) project_with_milestones.add_developer(user) sign_in(user) diff --git a/spec/features/issues/user_views_issue_spec.rb b/spec/features/issues/user_views_issue_spec.rb index 8792d76981f..31bf7649470 100644 --- a/spec/features/issues/user_views_issue_spec.rb +++ b/spec/features/issues/user_views_issue_spec.rb @@ -25,7 +25,7 @@ RSpec.describe "User views issue" do it 'shows the merge request and issue actions', :js, :aggregate_failures do click_button 'Issue actions' - expect(page).to have_link('New issue', href: new_project_issue_path(project)) + expect(page).to have_link('New issue', href: new_project_issue_path(project, { issue: { description: "Related to \##{issue.iid}.\n\n" } })) expect(page).to have_button('Create merge request') expect(page).to have_button('Close issue') end diff --git a/spec/features/issues/user_views_issues_spec.rb b/spec/features/issues/user_views_issues_spec.rb index 165f4b10cff..56afa7eb6ba 100644 --- a/spec/features/issues/user_views_issues_spec.rb +++ b/spec/features/issues/user_views_issues_spec.rb @@ -34,7 +34,7 @@ RSpec.describe "User views issues" do .and have_content(open_issue2.title) .and have_no_content(closed_issue.title) .and have_content(moved_open_issue.title) - .and have_no_selector(".js-new-board-list") + .and have_no_content('Create list') end it "opens issues by label" do @@ -65,7 +65,7 @@ RSpec.describe "User views issues" do .and have_no_content(open_issue1.title) .and have_no_content(open_issue2.title) .and have_no_content(moved_open_issue.title) - .and have_no_selector(".js-new-board-list") + .and have_no_content('Create list') end include_examples "opens issue from list" do @@ -87,7 +87,7 @@ RSpec.describe "User views issues" do .and have_content(open_issue2.title) .and have_content(moved_open_issue.title) .and have_no_content('CLOSED (MOVED)') - .and have_no_selector(".js-new-board-list") + .and have_no_content('Create list') end include_examples "opens issue from list" do |