diff options
Diffstat (limited to 'spec/features/issues')
50 files changed, 192 insertions, 91 deletions
diff --git a/spec/features/issues/bulk_assignment_labels_spec.rb b/spec/features/issues/bulk_assignment_labels_spec.rb index fc9176715c3..84a786e91a7 100644 --- a/spec/features/issues/bulk_assignment_labels_spec.rb +++ b/spec/features/issues/bulk_assignment_labels_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > Labels bulk assignment' do +RSpec.describe 'Issues > Labels bulk assignment' do let(:user) { create(:user) } let!(:project) { create(:project) } let!(:issue1) { create(:issue, project: project, title: "Issue 1") } @@ -302,7 +302,23 @@ describe 'Issues > Labels bulk assignment' do sleep 1 # needed expect(find("#issue_#{issue1.id}")).to have_content 'bug' - expect(find("#issue_#{issue1.id}")).not_to have_content 'feature' + expect(find("#issue_#{issue1.id}")).to have_content 'feature' + end + end + + context 'mark previously toggled label' do + before do + enable_bulk_update + end + + it do + open_labels_dropdown ['feature'] + + check_issue issue1 + + update_issues + + expect(find("#issue_#{issue1.id}")).to have_content 'feature' end end 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 a3742af31de..6fc648954b4 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 @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Resolving all open threads in a merge request from an issue', :js do +RSpec.describe 'Resolving all open threads in a merge request from an issue', :js do let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:merge_request) { create(:merge_request, source_project: project) } 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 1c17b39c03a..55a02dc4255 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 @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Resolve an open thread in a merge request by creating an issue', :js do +RSpec.describe 'Resolve an open thread in a merge request by creating an issue', :js do let(:user) { create(:user) } let(:project) { create(:project, :repository, only_allow_merge_if_all_discussions_are_resolved: true) } let(:merge_request) { create(:merge_request, source_project: project) } diff --git a/spec/features/issues/csv_spec.rb b/spec/features/issues/csv_spec.rb index 193c83d2a40..8d06bf24f8b 100644 --- a/spec/features/issues/csv_spec.rb +++ b/spec/features/issues/csv_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues csv' do +RSpec.describe 'Issues csv' do let(:user) { create(:user) } let(:project) { create(:project, :public) } let(:milestone) { create(:milestone, title: 'v1.0', project: project) } diff --git a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb index c207e91f02e..381633b0fc9 100644 --- a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown assignee', :js do +RSpec.describe 'Dropdown assignee', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/dropdown_author_spec.rb b/spec/features/issues/filtered_search/dropdown_author_spec.rb index 8ded11b3b08..91c85825a17 100644 --- a/spec/features/issues/filtered_search/dropdown_author_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_author_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown author', :js do +RSpec.describe 'Dropdown author', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/dropdown_base_spec.rb b/spec/features/issues/filtered_search/dropdown_base_spec.rb index 14d3f48b8fc..d730525cb8b 100644 --- a/spec/features/issues/filtered_search/dropdown_base_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_base_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown base', :js do +RSpec.describe 'Dropdown base', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb index 9ab0f49cd15..c2c933f8a86 100644 --- a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown emoji', :js do +RSpec.describe 'Dropdown emoji', :js do include FilteredSearchHelpers let!(:project) { create(:project, :public) } diff --git a/spec/features/issues/filtered_search/dropdown_hint_spec.rb b/spec/features/issues/filtered_search/dropdown_hint_spec.rb index 10b092c6957..9edc6e0b593 100644 --- a/spec/features/issues/filtered_search/dropdown_hint_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_hint_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown hint', :js do +RSpec.describe 'Dropdown hint', :js do include FilteredSearchHelpers let!(:project) { create(:project, :public) } diff --git a/spec/features/issues/filtered_search/dropdown_label_spec.rb b/spec/features/issues/filtered_search/dropdown_label_spec.rb index a982053dbcb..c0d5fe0d860 100644 --- a/spec/features/issues/filtered_search/dropdown_label_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_label_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown label', :js do +RSpec.describe 'Dropdown label', :js do include FilteredSearchHelpers let(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb index 56beb35a1c5..68afd973f1d 100644 --- a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown milestone', :js do +RSpec.describe 'Dropdown milestone', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/dropdown_release_spec.rb b/spec/features/issues/filtered_search/dropdown_release_spec.rb index ae1c84d71b4..daf686c2850 100644 --- a/spec/features/issues/filtered_search/dropdown_release_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_release_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Dropdown release', :js do +RSpec.describe 'Dropdown release', :js do include FilteredSearchHelpers let!(:project) { create(:project, :repository) } diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb index 3ee5840e1b9..5b5348d4069 100644 --- a/spec/features/issues/filtered_search/filter_issues_spec.rb +++ b/spec/features/issues/filtered_search/filter_issues_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Filter issues', :js do +RSpec.describe 'Filter issues', :js do include FilteredSearchHelpers let(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/recent_searches_spec.rb b/spec/features/issues/filtered_search/recent_searches_spec.rb index e05c7aa3af5..85b7a093536 100644 --- a/spec/features/issues/filtered_search/recent_searches_spec.rb +++ b/spec/features/issues/filtered_search/recent_searches_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Recent searches', :js do +RSpec.describe 'Recent searches', :js do include FilteredSearchHelpers let(:project_1) { create(:project, :public) } diff --git a/spec/features/issues/filtered_search/search_bar_spec.rb b/spec/features/issues/filtered_search/search_bar_spec.rb index ad994270218..167fecc5ab1 100644 --- a/spec/features/issues/filtered_search/search_bar_spec.rb +++ b/spec/features/issues/filtered_search/search_bar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Search bar', :js do +RSpec.describe 'Search bar', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/filtered_search/visual_tokens_spec.rb b/spec/features/issues/filtered_search/visual_tokens_spec.rb index d34253b3c5e..59588978a8e 100644 --- a/spec/features/issues/filtered_search/visual_tokens_spec.rb +++ b/spec/features/issues/filtered_search/visual_tokens_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Visual tokens', :js do +RSpec.describe 'Visual tokens', :js do include FilteredSearchHelpers let!(:project) { create(:project) } diff --git a/spec/features/issues/form_spec.rb b/spec/features/issues/form_spec.rb index 8d7b6be5ea2..dac066856c0 100644 --- a/spec/features/issues/form_spec.rb +++ b/spec/features/issues/form_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'New/edit issue', :js do +RSpec.describe 'New/edit issue', :js do include ActionView::Helpers::JavaScriptHelper include FormHelper diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb index 501a2d347d1..4a7e1ba99e9 100644 --- a/spec/features/issues/gfm_autocomplete_spec.rb +++ b/spec/features/issues/gfm_autocomplete_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'GFM autocomplete', :js do +RSpec.describe 'GFM autocomplete', :js do let(:issue_xss_title) { 'This will execute alert<img src=x onerror=alert(2)<img src=x onerror=alert(1)>' } let(:user_xss_title) { 'eve <img src=x onerror=alert(2)<img src=x onerror=alert(1)>' } let(:label_xss_title) { 'alert label <img src=x onerror="alert(\'Hello xss\');" a' } diff --git a/spec/features/issues/group_label_sidebar_spec.rb b/spec/features/issues/group_label_sidebar_spec.rb index fe6d95e1039..e6a173f4589 100644 --- a/spec/features/issues/group_label_sidebar_spec.rb +++ b/spec/features/issues/group_label_sidebar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Group label on issue' do +RSpec.describe 'Group label on issue' do it 'renders link to the project issues page' do group = create(:group) project = create(:project, :public, namespace: group) diff --git a/spec/features/issues/issue_detail_spec.rb b/spec/features/issues/issue_detail_spec.rb index 3bb70fdf376..ab319daec71 100644 --- a/spec/features/issues/issue_detail_spec.rb +++ b/spec/features/issues/issue_detail_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issue Detail', :js do +RSpec.describe 'Issue Detail', :js do let(:user) { create(:user) } let(:project) { create(:project, :public) } let(:issue) { create(:issue, project: project, author: user) } diff --git a/spec/features/issues/issue_sidebar_spec.rb b/spec/features/issues/issue_sidebar_spec.rb index e7c675bf6bf..9e4362bf0e5 100644 --- a/spec/features/issues/issue_sidebar_spec.rb +++ b/spec/features/issues/issue_sidebar_spec.rb @@ -2,12 +2,12 @@ require 'spec_helper' -describe 'Issue Sidebar' do +RSpec.describe 'Issue Sidebar' do include MobileHelpers let(:group) { create(:group, :nested) } let(:project) { create(:project, :public, namespace: group) } - let!(:user) { create(:user)} + let!(:user) { create(:user) } let!(:label) { create(:label, project: project, title: 'bug') } let(:issue) { create(:labeled_issue, project: project, labels: [label]) } let!(:xss_label) { create(:label, project: project, title: '<script>alert("xss");</script>') } @@ -20,62 +20,125 @@ describe 'Issue Sidebar' do let(:user2) { create(:user) } let(:issue2) { create(:issue, project: project, author: user2) } - before do - project.add_developer(user) - visit_issue(project, issue2) + context 'when invite_members_version_a experiment is enabled' do + before do + stub_experiment_for_user(invite_members_version_a: true) + end - find('.block.assignee .edit-link').click + context 'when user can not see invite members' do + before do + project.add_developer(user) + visit_issue(project, issue2) - wait_for_requests - end + find('.block.assignee .edit-link').click - it 'shows author in assignee dropdown' do - page.within '.dropdown-menu-user' do - expect(page).to have_content(user2.name) + wait_for_requests + end + + it 'does not see link to invite members' do + page.within '.dropdown-menu-user' do + expect(page).not_to have_link('Invite Members') + end + end end - end - it 'shows author when filtering assignee dropdown' do - page.within '.dropdown-menu-user' do - find('.dropdown-input-field').native.send_keys user2.name - sleep 1 # Required to wait for end of input delay + context 'when user can see invite members' do + before do + project.add_maintainer(user) + visit_issue(project, issue2) + + find('.block.assignee .edit-link').click - wait_for_requests + wait_for_requests + end - expect(page).to have_content(user2.name) + it 'sees link to invite members' do + page.within '.dropdown-menu-user' do + expect(page).to have_link('Invite Members', href: project_project_members_path(project)) + expect(page).to have_selector('[data-track-event="click_invite_members"]') + expect(page).to have_selector("[data-track-label='edit_assignee']") + end + end end end - it 'assigns yourself' do - find('.block.assignee .dropdown-menu-toggle').click + context 'when invite_members_version_a experiment is not enabled' do + context 'when user is a developer' do + before do + project.add_developer(user) + visit_issue(project, issue2) - click_button 'assign yourself' + find('.block.assignee .edit-link').click - wait_for_requests + wait_for_requests + end - find('.block.assignee .edit-link').click + it 'shows author in assignee dropdown' do + page.within '.dropdown-menu-user' do + expect(page).to have_content(user2.name) + end + end - page.within '.dropdown-menu-user' do - expect(page.find('.dropdown-header')).to be_visible - expect(page.find('.dropdown-menu-user-link.is-active')).to have_content(user.name) - end - end + it 'shows author when filtering assignee dropdown' do + page.within '.dropdown-menu-user' do + find('.dropdown-input-field').native.send_keys user2.name + sleep 1 # Required to wait for end of input delay - it 'keeps your filtered term after filtering and dismissing the dropdown' do - find('.dropdown-input-field').native.send_keys user2.name + wait_for_requests - wait_for_requests + expect(page).to have_content(user2.name) + end + end + + it 'assigns yourself' do + find('.block.assignee .dropdown-menu-toggle').click + + click_button 'assign yourself' + + wait_for_requests + + find('.block.assignee .edit-link').click + + page.within '.dropdown-menu-user' do + expect(page.find('.dropdown-header')).to be_visible + expect(page.find('.dropdown-menu-user-link.is-active')).to have_content(user.name) + end + end + + it 'keeps your filtered term after filtering and dismissing the dropdown' do + find('.dropdown-input-field').native.send_keys user2.name + + wait_for_requests - page.within '.dropdown-menu-user' do - expect(page).not_to have_content 'Unassigned' - click_link user2.name + page.within '.dropdown-menu-user' do + expect(page).not_to have_content 'Unassigned' + click_link user2.name + end + + find('.js-right-sidebar').click + find('.block.assignee .edit-link').click + + expect(page.all('.dropdown-menu-user li').length).to eq(1) + expect(find('.dropdown-input-field').value).to eq(user2.name) + end end - find('.js-right-sidebar').click - find('.block.assignee .edit-link').click + context 'when user is a maintainer' do + before do + project.add_maintainer(user) + visit_issue(project, issue2) + + find('.block.assignee .edit-link').click - expect(page.all('.dropdown-menu-user li').length).to eq(1) - expect(find('.dropdown-input-field').value).to eq(user2.name) + wait_for_requests + end + + it 'shows author in assignee dropdown and no invite link' do + page.within '.dropdown-menu-user' do + expect(page).not_to have_link('Invite Members') + end + end + end end end diff --git a/spec/features/issues/keyboard_shortcut_spec.rb b/spec/features/issues/keyboard_shortcut_spec.rb index c5d53cd1cd0..ab40f124257 100644 --- a/spec/features/issues/keyboard_shortcut_spec.rb +++ b/spec/features/issues/keyboard_shortcut_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues shortcut', :js do +RSpec.describe 'Issues shortcut', :js do context 'New Issue shortcut' do context 'issues are enabled' do let(:project) { create(:project) } diff --git a/spec/features/issues/markdown_toolbar_spec.rb b/spec/features/issues/markdown_toolbar_spec.rb index d174fdcb25e..aab9d1026f9 100644 --- a/spec/features/issues/markdown_toolbar_spec.rb +++ b/spec/features/issues/markdown_toolbar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issue markdown toolbar', :js do +RSpec.describe 'Issue markdown toolbar', :js do let(:project) { create(:project, :public) } let(:issue) { create(:issue, project: project) } let(:user) { create(:user) } diff --git a/spec/features/issues/move_spec.rb b/spec/features/issues/move_spec.rb index 831bcf8931e..f3a6655f397 100644 --- a/spec/features/issues/move_spec.rb +++ b/spec/features/issues/move_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'issue move to another project' do +RSpec.describe 'issue move to another project' do let(:user) { create(:user) } let(:old_project) { create(:project, :repository) } let(:text) { 'Some issue description' } diff --git a/spec/features/issues/note_polling_spec.rb b/spec/features/issues/note_polling_spec.rb index 04ad012d57e..bc4c67fdd79 100644 --- a/spec/features/issues/note_polling_spec.rb +++ b/spec/features/issues/note_polling_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issue notes polling', :js do +RSpec.describe 'Issue notes polling', :js do include NoteInteractionHelpers let(:project) { create(:project, :public) } diff --git a/spec/features/issues/notes_on_issues_spec.rb b/spec/features/issues/notes_on_issues_spec.rb index 74eb699c7ef..be85d73d777 100644 --- a/spec/features/issues/notes_on_issues_spec.rb +++ b/spec/features/issues/notes_on_issues_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Create notes on issues', :js do +RSpec.describe 'Create notes on issues', :js do let(:user) { create(:user) } def submit_comment(text) diff --git a/spec/features/issues/resource_label_events_spec.rb b/spec/features/issues/resource_label_events_spec.rb index b367bbe2c99..f2c978c525e 100644 --- a/spec/features/issues/resource_label_events_spec.rb +++ b/spec/features/issues/resource_label_events_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'List issue resource label events', :js do +RSpec.describe 'List issue resource label events', :js do let(:user) { create(:user) } let(:project) { create(:project, :public) } let(:issue) { create(:issue, project: project, author: user) } diff --git a/spec/features/issues/rss_spec.rb b/spec/features/issues/rss_spec.rb index 7577df3bc7d..6c4498ea711 100644 --- a/spec/features/issues/rss_spec.rb +++ b/spec/features/issues/rss_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Project Issues RSS' do +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) } diff --git a/spec/features/issues/spam_issues_spec.rb b/spec/features/issues/spam_issues_spec.rb index 47e7022011d..aec806c566d 100644 --- a/spec/features/issues/spam_issues_spec.rb +++ b/spec/features/issues/spam_issues_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'New issue', :js do +RSpec.describe 'New issue', :js do include StubENV let(:project) { create(:project, :public) } @@ -81,7 +81,7 @@ describe 'New issue', :js do before do allow_next_instance_of(Spam::SpamVerdictService) do |verdict_service| - allow(verdict_service).to receive(:execute).and_return(REQUIRE_RECAPTCHA) + allow(verdict_service).to receive(:execute).and_return(CONDITIONAL_ALLOW) end visit new_project_issue_path(project) @@ -164,6 +164,8 @@ describe 'New issue', :js do end context 'when the SpamVerdictService allows' do + include_context 'includes Spam constants' + before do allow_next_instance_of(Spam::SpamVerdictService) do |verdict_service| allow(verdict_service).to receive(:execute).and_return(ALLOW) diff --git a/spec/features/issues/todo_spec.rb b/spec/features/issues/todo_spec.rb index 4bb96ad069c..3de33049db0 100644 --- a/spec/features/issues/todo_spec.rb +++ b/spec/features/issues/todo_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Manually create a todo item from issue', :js do +RSpec.describe 'Manually create a todo item from issue', :js do let!(:project) { create(:project) } let!(:issue) { create(:issue, project: project) } let!(:user) { create(:user)} diff --git a/spec/features/issues/update_issues_spec.rb b/spec/features/issues/update_issues_spec.rb index 98f70df1c8b..f8385f183d2 100644 --- a/spec/features/issues/update_issues_spec.rb +++ b/spec/features/issues/update_issues_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Multiple issue updating from issues#index', :js do +RSpec.describe 'Multiple issue updating from issues#index', :js do let!(:project) { create(:project) } let!(:issue) { create(:issue, project: project) } let!(:user) { create(:user)} diff --git a/spec/features/issues/user_comments_on_issue_spec.rb b/spec/features/issues/user_comments_on_issue_spec.rb index 363906b017a..005d45d9c92 100644 --- a/spec/features/issues/user_comments_on_issue_spec.rb +++ b/spec/features/issues/user_comments_on_issue_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User comments on issue", :js do +RSpec.describe "User comments on issue", :js do include Spec::Support::Helpers::Features::NotesHelpers let(:project) { create(:project_empty_repo, :public) } diff --git a/spec/features/issues/user_creates_branch_and_merge_request_spec.rb b/spec/features/issues/user_creates_branch_and_merge_request_spec.rb index 848dbbb85a6..a546fb3e85b 100644 --- a/spec/features/issues/user_creates_branch_and_merge_request_spec.rb +++ b/spec/features/issues/user_creates_branch_and_merge_request_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'User creates branch and merge request on issue page', :js do +RSpec.describe 'User creates branch and merge request on issue page', :js do let(:membership_level) { :developer } let(:user) { create(:user) } let!(:project) { create(:project, :repository, :public) } diff --git a/spec/features/issues/user_creates_confidential_merge_request_spec.rb b/spec/features/issues/user_creates_confidential_merge_request_spec.rb index 84f358061e6..ea96165d7b7 100644 --- a/spec/features/issues/user_creates_confidential_merge_request_spec.rb +++ b/spec/features/issues/user_creates_confidential_merge_request_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'User creates confidential merge request on issue page', :js do +RSpec.describe 'User creates confidential merge request on issue page', :js do include ProjectForksHelper let(:user) { create(:user) } diff --git a/spec/features/issues/user_creates_issue_by_email_spec.rb b/spec/features/issues/user_creates_issue_by_email_spec.rb index c73a65849cc..5a0036170ab 100644 --- a/spec/features/issues/user_creates_issue_by_email_spec.rb +++ b/spec/features/issues/user_creates_issue_by_email_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > User creates issue by email' do +RSpec.describe 'Issues > User creates issue by email' do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public) } diff --git a/spec/features/issues/user_creates_issue_spec.rb b/spec/features/issues/user_creates_issue_spec.rb index efcaa8247df..a2c868d0256 100644 --- a/spec/features/issues/user_creates_issue_spec.rb +++ b/spec/features/issues/user_creates_issue_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User creates issue" do +RSpec.describe "User creates issue" do include DropzoneHelper let_it_be(:project) { create(:project_empty_repo, :public) } diff --git a/spec/features/issues/user_edits_issue_spec.rb b/spec/features/issues/user_edits_issue_spec.rb index d50cf16d8ef..39bf535c715 100644 --- a/spec/features/issues/user_edits_issue_spec.rb +++ b/spec/features/issues/user_edits_issue_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "Issues > User edits issue", :js do +RSpec.describe "Issues > User edits issue", :js do let_it_be(:project) { create(:project_empty_repo, :public) } let_it_be(:user) { create(:user) } let_it_be(:issue) { create(:issue, project: project, author: user, assignees: [user]) } diff --git a/spec/features/issues/user_filters_issues_spec.rb b/spec/features/issues/user_filters_issues_spec.rb index 9ce47e68926..20ad47b111a 100644 --- a/spec/features/issues/user_filters_issues_spec.rb +++ b/spec/features/issues/user_filters_issues_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'User filters issues' do +RSpec.describe 'User filters issues' do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project_empty_repo, :public) } diff --git a/spec/features/issues/user_interacts_with_awards_spec.rb b/spec/features/issues/user_interacts_with_awards_spec.rb index 095ae9f276c..7b7e087a6d6 100644 --- a/spec/features/issues/user_interacts_with_awards_spec.rb +++ b/spec/features/issues/user_interacts_with_awards_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'User interacts with awards' do +RSpec.describe 'User interacts with awards' do let(:user) { create(:user) } describe 'User interacts with awards in an issue', :js do diff --git a/spec/features/issues/user_resets_their_incoming_email_token_spec.rb b/spec/features/issues/user_resets_their_incoming_email_token_spec.rb index 108b6f550db..a20f65abebf 100644 --- a/spec/features/issues/user_resets_their_incoming_email_token_spec.rb +++ b/spec/features/issues/user_resets_their_incoming_email_token_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > User resets their incoming email token' do +RSpec.describe 'Issues > User resets their incoming email token' do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public, namespace: user.namespace) } let_it_be(:issue) { create(:issue, project: project) } diff --git a/spec/features/issues/user_sees_breadcrumb_links_spec.rb b/spec/features/issues/user_sees_breadcrumb_links_spec.rb index 8a120a0a0b2..2660101c330 100644 --- a/spec/features/issues/user_sees_breadcrumb_links_spec.rb +++ b/spec/features/issues/user_sees_breadcrumb_links_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'New issue breadcrumb' do +RSpec.describe 'New issue breadcrumb' do let_it_be(:project, reload: true) { create(:project) } let(:user) { project.creator } diff --git a/spec/features/issues/user_sees_empty_state_spec.rb b/spec/features/issues/user_sees_empty_state_spec.rb index 114d119aca8..047c5ca2189 100644 --- a/spec/features/issues/user_sees_empty_state_spec.rb +++ b/spec/features/issues/user_sees_empty_state_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > User sees empty state' do +RSpec.describe 'Issues > User sees empty state' do let_it_be(:project) { create(:project, :public) } let_it_be(:user) { project.creator } diff --git a/spec/features/issues/user_sees_live_update_spec.rb b/spec/features/issues/user_sees_live_update_spec.rb index 98c7d289fb0..c9b751715bc 100644 --- a/spec/features/issues/user_sees_live_update_spec.rb +++ b/spec/features/issues/user_sees_live_update_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > User sees live update', :js do +RSpec.describe 'Issues > User sees live update', :js do let_it_be(:project) { create(:project, :public) } let_it_be(:user) { project.creator } diff --git a/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb b/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb index c3f17227701..7a2b637e48e 100644 --- a/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb +++ b/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Issues > Real-time sidebar', :js do +RSpec.describe 'Issues > Real-time sidebar', :js do let_it_be(:project) { create(:project, :public) } let_it_be(:issue) { create(:issue, project: project) } let_it_be(:user) { create(:user) } diff --git a/spec/features/issues/user_sorts_issue_comments_spec.rb b/spec/features/issues/user_sorts_issue_comments_spec.rb index e1c0acc32f1..555f8827374 100644 --- a/spec/features/issues/user_sorts_issue_comments_spec.rb +++ b/spec/features/issues/user_sorts_issue_comments_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'Comment sort direction' do +RSpec.describe 'Comment sort direction' do let_it_be(:project) { create(:project, :public, :repository) } let_it_be(:issue) { create(:issue, project: project) } let_it_be(:comment_1) { create(:note_on_issue, noteable: issue, project: project, note: 'written first') } diff --git a/spec/features/issues/user_sorts_issues_spec.rb b/spec/features/issues/user_sorts_issues_spec.rb index 66110f55435..ec38bf99035 100644 --- a/spec/features/issues/user_sorts_issues_spec.rb +++ b/spec/features/issues/user_sorts_issues_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User sorts issues" do +RSpec.describe "User sorts issues" do include SortingHelper include IssueHelpers diff --git a/spec/features/issues/user_toggles_subscription_spec.rb b/spec/features/issues/user_toggles_subscription_spec.rb index ba167362511..971c8a3b431 100644 --- a/spec/features/issues/user_toggles_subscription_spec.rb +++ b/spec/features/issues/user_toggles_subscription_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User toggles subscription", :js do +RSpec.describe "User toggles subscription", :js do let(:project) { create(:project_empty_repo, :public) } let(:user) { create(:user) } let(:issue) { create(:issue, project: project, author: user) } diff --git a/spec/features/issues/user_uses_quick_actions_spec.rb b/spec/features/issues/user_uses_quick_actions_spec.rb index 09f07f8c908..c5eb3f415ff 100644 --- a/spec/features/issues/user_uses_quick_actions_spec.rb +++ b/spec/features/issues/user_uses_quick_actions_spec.rb @@ -7,7 +7,7 @@ require 'spec_helper' # for example, adding quick actions when creating the issue and checking DateTime formats on UI. # Because this kind of spec takes more time to run there is no need to add new ones # for each existing quick action unless they test something not tested by existing tests. -describe 'Issues > User uses quick actions', :js do +RSpec.describe 'Issues > User uses quick actions', :js do include Spec::Support::Helpers::Features::NotesHelpers context "issuable common quick actions" do diff --git a/spec/features/issues/user_views_issue_spec.rb b/spec/features/issues/user_views_issue_spec.rb index dd04ac94105..2b610bab9f0 100644 --- a/spec/features/issues/user_views_issue_spec.rb +++ b/spec/features/issues/user_views_issue_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User views issue" do +RSpec.describe "User views issue" do let(:project) { create(:project_empty_repo, :public) } let(:user) { create(:user) } let(:issue) { create(:issue, project: project, description: "# Description header", author: user) } @@ -35,18 +35,38 @@ describe "User views issue" do describe 'user status' do subject { visit(project_issue_path(project, issue)) } - describe 'showing status of the author of the issue' do + context 'when showing status of the author of the issue' do it_behaves_like 'showing user status' do let(:user_with_status) { issue.author } end end - describe 'showing status of a user who commented on an issue', :js do + context 'when showing status of a user who commented on an issue', :js do let!(:note) { create(:note, noteable: issue, project: project, author: user_with_status) } it_behaves_like 'showing user status' do let(:user_with_status) { create(:user) } end end + + context 'when status message has an emoji', :js do + let(:message) { 'My status with an emoji' } + let(:message_emoji) { 'basketball' } + + let!(:note) { create(:note, noteable: issue, project: project, author: user) } + let!(:status) { create(:user_status, user: user, emoji: 'smirk', message: "#{message} :#{message_emoji}:") } + + it 'correctly renders the emoji' do + tooltip_span = page.first(".user-status-emoji[title^='#{message}']") + + tooltip_span.hover + + tooltip = page.find('.tooltip .tooltip-inner') + + page.within(tooltip) do + expect(page).to have_emoji(message_emoji) + end + end + end end end diff --git a/spec/features/issues/user_views_issues_spec.rb b/spec/features/issues/user_views_issues_spec.rb index 796e618c7c8..91de813e414 100644 --- a/spec/features/issues/user_views_issues_spec.rb +++ b/spec/features/issues/user_views_issues_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -describe "User views issues" do +RSpec.describe "User views issues" do let!(:closed_issue) { create(:closed_issue, project: project) } let!(:open_issue1) { create(:issue, project: project) } let!(:open_issue2) { create(:issue, project: project) } |