diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-20 15:09:31 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-20 15:09:31 +0300 |
commit | b70394d26f7349ecfa4a740d7d7b115d738eff8e (patch) | |
tree | 635c243acaa07e06f43cd3bfc628a24c5a572a8a /spec/features | |
parent | 55e6eebd6fc60bd98d94303983468b3020d2a211 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/atom/dashboard_issues_spec.rb | 16 | ||||
-rw-r--r-- | spec/features/atom/issues_spec.rb | 22 | ||||
-rw-r--r-- | spec/features/boards/user_adds_lists_to_board_spec.rb | 62 | ||||
-rw-r--r-- | spec/features/ics/dashboard_issues_spec.rb | 16 | ||||
-rw-r--r-- | spec/features/ics/group_issues_spec.rb | 16 | ||||
-rw-r--r-- | spec/features/ics/project_issues_spec.rb | 16 | ||||
-rw-r--r-- | spec/features/issues/user_views_issues_spec.rb | 6 | ||||
-rw-r--r-- | spec/features/labels_hierarchy_spec.rb | 85 |
8 files changed, 108 insertions, 131 deletions
diff --git a/spec/features/atom/dashboard_issues_spec.rb b/spec/features/atom/dashboard_issues_spec.rb index 511cdcc2940..855c91f70d7 100644 --- a/spec/features/atom/dashboard_issues_spec.rb +++ b/spec/features/atom/dashboard_issues_spec.rb @@ -4,8 +4,20 @@ require 'spec_helper' RSpec.describe "Dashboard Issues Feed" do describe "GET /issues" do - let!(:user) { create(:user, email: 'private1@example.com', public_email: 'public1@example.com') } - let!(:assignee) { create(:user, email: 'private2@example.com', public_email: 'public2@example.com') } + let!(:user) do + user = create(:user, email: 'private1@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public1@example.com') + user.update!(public_email: public_email.email) + user + end + + let!(:assignee) do + user = create(:user, email: 'private2@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public2@example.com') + user.update!(public_email: public_email.email) + user + end + let!(:project1) { create(:project) } let!(:project2) { create(:project) } diff --git a/spec/features/atom/issues_spec.rb b/spec/features/atom/issues_spec.rb index e6a862ddccc..913f5a7bcf3 100644 --- a/spec/features/atom/issues_spec.rb +++ b/spec/features/atom/issues_spec.rb @@ -4,11 +4,23 @@ require 'spec_helper' RSpec.describe 'Issues Feed' do describe 'GET /issues' do - let_it_be_with_reload(:user) { create(:user, email: 'private1@example.com', public_email: 'public1@example.com') } - let_it_be(:assignee) { create(:user, email: 'private2@example.com', public_email: 'public2@example.com') } - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project) } - let_it_be(:issue) { create(:issue, author: user, assignees: [assignee], project: project, due_date: Date.today) } + let_it_be_with_reload(:user) do + user = create(:user, email: 'private1@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public1@example.com') + user.update!(public_email: public_email.email) + user + end + + let_it_be(:assignee) do + user = create(:user, email: 'private2@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public2@example.com') + user.update!(public_email: public_email.email) + user + end + + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project) } + let_it_be(:issue) { create(:issue, author: user, assignees: [assignee], project: project, due_date: Date.today) } let_it_be(:issuable) { issue } # "alias" for shared examples before_all do diff --git a/spec/features/boards/user_adds_lists_to_board_spec.rb b/spec/features/boards/user_adds_lists_to_board_spec.rb index 5128fc4004e..0db3fe12a3e 100644 --- a/spec/features/boards/user_adds_lists_to_board_spec.rb +++ b/spec/features/boards/user_adds_lists_to_board_spec.rb @@ -17,6 +17,8 @@ RSpec.describe 'User adds lists', :js do let_it_be(:project_label) { create(:label, project: project) } let_it_be(:group_backlog_list) { create(:backlog_list, board: group_board) } let_it_be(:project_backlog_list) { create(:backlog_list, board: project_board) } + let_it_be(:backlog) { create(:group_label, group: group, name: 'Backlog') } + let_it_be(:closed) { create(:group_label, group: group, name: 'Closed') } let_it_be(:issue) { create(:labeled_issue, project: project, labels: [group_label, project_label]) } @@ -25,15 +27,11 @@ RSpec.describe 'User adds lists', :js do group.add_owner(user) end - where(:board_type, :graphql_board_lists_enabled, :board_new_list_enabled) do - :project | true | true - :project | false | true - :project | true | false - :project | false | false - :group | true | true - :group | false | true - :group | true | false - :group | false | false + where(:board_type, :graphql_board_lists_enabled) do + :project | true + :project | false + :group | true + :group | false end with_them do @@ -43,8 +41,7 @@ RSpec.describe 'User adds lists', :js do set_cookie('sidebar_collapsed', 'true') stub_feature_flags( - graphql_board_lists: graphql_board_lists_enabled, - board_new_list: board_new_list_enabled + graphql_board_lists: graphql_board_lists_enabled ) if board_type == :project @@ -57,39 +54,44 @@ RSpec.describe 'User adds lists', :js do end it 'creates new column for label containing labeled issue' do - click_button button_text(board_new_list_enabled) + click_button 'Create list' wait_for_all_requests - select_label(board_new_list_enabled, group_label) + select_label(group_label) wait_for_all_requests expect(page).to have_selector('.board', text: group_label.title) expect(find('.board:nth-child(2) .board-card')).to have_content(issue.title) end - end - def select_label(board_new_list_enabled, label) - if board_new_list_enabled - click_button 'Select a label' + it 'creates new list for Backlog and closed labels' do + click_button 'Create list' + wait_for_requests - find('label', text: label.title).click + select_label(backlog) - click_button 'Add to board' + click_button 'Create list' + wait_for_requests - wait_for_all_requests - else - page.within('.dropdown-menu-issues-board-new') do - click_link label.title - end + select_label(closed) + + wait_for_requests + + expect(page).to have_selector('.board', text: closed.title) + expect(find('.board:nth-child(2) .board-header')).to have_content(backlog.title) + expect(find('.board:nth-child(3) .board-header')).to have_content(closed.title) + expect(find('.board:nth-child(4) .board-header')).to have_content('Closed') end end - def button_text(board_new_list_enabled) - if board_new_list_enabled - 'Create list' - else - 'Add list' - end + def select_label(label) + click_button 'Select a label' + + find('label', text: label.title).click + + click_button 'Add to board' + + wait_for_all_requests end end diff --git a/spec/features/ics/dashboard_issues_spec.rb b/spec/features/ics/dashboard_issues_spec.rb index 4a93a4b490a..1d0ea495757 100644 --- a/spec/features/ics/dashboard_issues_spec.rb +++ b/spec/features/ics/dashboard_issues_spec.rb @@ -4,8 +4,20 @@ require 'spec_helper' RSpec.describe 'Dashboard Issues Calendar Feed' do describe 'GET /issues' do - let!(:user) { create(:user, email: 'private1@example.com', public_email: 'public1@example.com') } - let!(:assignee) { create(:user, email: 'private2@example.com', public_email: 'public2@example.com') } + let!(:user) do + user = create(:user, email: 'private1@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public1@example.com') + user.update!(public_email: public_email.email) + user + end + + let!(:assignee) do + user = create(:user, email: 'private2@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public2@example.com') + user.update!(public_email: public_email.email) + user + end + let!(:project) { create(:project) } let(:milestone) { create(:milestone, project_id: project.id, title: 'v1.0') } diff --git a/spec/features/ics/group_issues_spec.rb b/spec/features/ics/group_issues_spec.rb index 05caca4b5a8..f29c39ad4ef 100644 --- a/spec/features/ics/group_issues_spec.rb +++ b/spec/features/ics/group_issues_spec.rb @@ -4,8 +4,20 @@ require 'spec_helper' RSpec.describe 'Group Issues Calendar Feed' do describe 'GET /issues' do - let!(:user) { create(:user, email: 'private1@example.com', public_email: 'public1@example.com') } - let!(:assignee) { create(:user, email: 'private2@example.com', public_email: 'public2@example.com') } + let!(:user) do + user = create(:user, email: 'private1@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public1@example.com') + user.update!(public_email: public_email.email) + user + end + + let!(:assignee) do + user = create(:user, email: 'private2@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public2@example.com') + user.update!(public_email: public_email.email) + user + end + let!(:group) { create(:group) } let!(:project) { create(:project, group: group) } diff --git a/spec/features/ics/project_issues_spec.rb b/spec/features/ics/project_issues_spec.rb index 58a1a32eac2..771748060bb 100644 --- a/spec/features/ics/project_issues_spec.rb +++ b/spec/features/ics/project_issues_spec.rb @@ -4,8 +4,20 @@ require 'spec_helper' RSpec.describe 'Project Issues Calendar Feed' do describe 'GET /issues' do - let!(:user) { create(:user, email: 'private1@example.com', public_email: 'public1@example.com') } - let!(:assignee) { create(:user, email: 'private2@example.com', public_email: 'public2@example.com') } + let!(:user) do + user = create(:user, email: 'private1@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public1@example.com') + user.update!(public_email: public_email.email) + user + end + + let!(:assignee) do + user = create(:user, email: 'private2@example.com') + public_email = create(:email, :confirmed, user: user, email: 'public2@example.com') + user.update!(public_email: public_email.email) + user + end + let!(:project) { create(:project) } let!(:issue) { create(:issue, author: user, assignees: [assignee], project: project) } 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 diff --git a/spec/features/labels_hierarchy_spec.rb b/spec/features/labels_hierarchy_spec.rb index fca5e946d0c..378af53dd79 100644 --- a/spec/features/labels_hierarchy_spec.rb +++ b/spec/features/labels_hierarchy_spec.rb @@ -17,7 +17,6 @@ RSpec.describe 'Labels Hierarchy', :js do let!(:project_label_1) { create(:label, project: project_1, title: 'Label_4') } before do - stub_feature_flags(board_new_list: false) grandparent.add_owner(user) sign_in(user) @@ -307,88 +306,4 @@ RSpec.describe 'Labels Hierarchy', :js do it_behaves_like 'filtering by ancestor labels for groups', true end end - - context 'creating boards lists' do - before do - stub_feature_flags(board_new_list: false) - end - - context 'on project boards' do - let(:board) { create(:board, project: project_1) } - - before do - project_1.add_developer(user) - visit project_board_path(project_1, board) - find('.js-new-board-list').click - wait_for_requests - end - - it 'creates lists from all ancestor labels' do - [grandparent_group_label, parent_group_label, project_label_1].each do |label| - find('a', text: label.title).click - end - - wait_for_requests - - expect(page).to have_selector('.board-title-text', text: grandparent_group_label.title) - expect(page).to have_selector('.board-title-text', text: parent_group_label.title) - expect(page).to have_selector('.board-title-text', text: project_label_1.title) - end - end - - context 'on group boards' do - let(:board) { create(:board, group: parent) } - - before do - parent.add_developer(user) - visit group_board_path(parent, board) - find('.js-new-board-list').click - wait_for_requests - end - - context 'when graphql_board_lists FF enabled' do - it 'creates lists from all ancestor group labels' do - [grandparent_group_label, parent_group_label].each do |label| - find('a', text: label.title).click - end - - wait_for_requests - - expect(page).to have_selector('.board-title-text', text: grandparent_group_label.title) - expect(page).to have_selector('.board-title-text', text: parent_group_label.title) - end - - it 'does not create lists from descendant groups' do - expect(page).not_to have_selector('a', text: child_group_label.title) - end - end - end - - context 'when graphql_board_lists FF disabled' do - let(:board) { create(:board, group: parent) } - - before do - stub_feature_flags(graphql_board_lists: false) - parent.add_developer(user) - visit group_board_path(parent, board) - find('.js-new-board-list').click - wait_for_requests - end - - it 'creates lists from all ancestor group labels' do - [grandparent_group_label, parent_group_label].each do |label| - find('a', text: label.title).click - end - - wait_for_requests - - expect(page).to have_selector('.board-title-text', text: grandparent_group_label.title) - expect(page).to have_selector('.board-title-text', text: parent_group_label.title) - end - - it 'does not create lists from descendant groups' do - expect(page).not_to have_selector('a', text: child_group_label.title) - end - end - end end |