diff options
Diffstat (limited to 'spec/features/projects/members/group_members_spec.rb')
-rw-r--r-- | spec/features/projects/members/group_members_spec.rb | 244 |
1 files changed, 61 insertions, 183 deletions
diff --git a/spec/features/projects/members/group_members_spec.rb b/spec/features/projects/members/group_members_spec.rb index 1abd00421ec..94ce18fef93 100644 --- a/spec/features/projects/members/group_members_spec.rb +++ b/spec/features/projects/members/group_members_spec.rb @@ -20,218 +20,96 @@ RSpec.describe 'Projects members', :js do sign_in(user) end - context 'when `vue_project_members_list` feature flag is enabled' do - context 'with a group invitee' do - before do - group_invitee - visit project_project_members_path(project) - end - - it 'does not appear in the project members page' do - expect(members_table).not_to have_content('test2@abc.com') - end + context 'with a group invitee' do + before do + group_invitee + visit project_project_members_path(project) end - context 'with a group' do - it 'shows group and project members by default' do - visit project_project_members_path(project) - - expect(members_table).to have_content(developer.name) - expect(members_table).to have_content(user.name) - expect(members_table).to have_content(group.name) - end - - it 'shows project members only if requested' do - visit project_project_members_path(project, with_inherited_permissions: 'exclude') - - expect(members_table).to have_content(developer.name) - expect(members_table).not_to have_content(user.name) - expect(members_table).not_to have_content(group.name) - end + it 'does not appear in the project members page' do + expect(members_table).not_to have_content('test2@abc.com') + end + end - it 'shows group members only if requested' do - visit project_project_members_path(project, with_inherited_permissions: 'only') + context 'with a group' do + it 'shows group and project members by default' do + visit project_project_members_path(project) - expect(members_table).not_to have_content(developer.name) - expect(members_table).to have_content(user.name) - expect(members_table).to have_content(group.name) - end + expect(members_table).to have_content(developer.name) + expect(members_table).to have_content(user.name) + expect(members_table).to have_content(group.name) end - context 'with a group, a project invitee, and a project requester' do - before do - group.request_access(group_requester) - project.request_access(project_requester) - group_invitee - project_invitee - visit project_project_members_path(project) - end - - it 'shows the group owner' do - expect(members_table).to have_content(user.name) - expect(members_table).to have_content(group.name) - end - - it 'shows the project developer' do - expect(members_table).to have_content(developer.name) - end - - it 'shows the project invitee' do - click_link 'Invited' - - expect(members_table).to have_content('test1@abc.com') - expect(members_table).not_to have_content('test2@abc.com') - end - - it 'shows the project requester' do - click_link 'Access requests' - - expect(members_table).to have_content(project_requester.name) - expect(members_table).not_to have_content(group_requester.name) - end - end + it 'shows project members only if requested' do + visit project_project_members_path(project, with_inherited_permissions: 'exclude') - context 'with a group requester' do - before do - stub_feature_flags(invite_members_group_modal: false) - group.request_access(group_requester) - visit project_project_members_path(project) - end - - it 'does not appear in the project members page' do - expect(page).not_to have_link('Access requests') - expect(members_table).not_to have_content(group_requester.name) - end + expect(members_table).to have_content(developer.name) + expect(members_table).not_to have_content(user.name) + expect(members_table).not_to have_content(group.name) end - context 'showing status of members' do - it 'shows the status' do - create(:user_status, user: user, emoji: 'smirk', message: 'Authoring this object') + it 'shows group members only if requested' do + visit project_project_members_path(project, with_inherited_permissions: 'only') - visit project_project_members_path(project) - - expect(first_row).to have_selector('gl-emoji[data-name="smirk"]') - end + expect(members_table).not_to have_content(developer.name) + expect(members_table).to have_content(user.name) + expect(members_table).to have_content(group.name) end end - context 'when `vue_project_members_list` feature flag is disabled' do + context 'with a group, a project invitee, and a project requester' do before do - stub_feature_flags(vue_project_members_list: false) + group.request_access(group_requester) + project.request_access(project_requester) + group_invitee + project_invitee + visit project_project_members_path(project) end - context 'with a group invitee' do - before do - group_invitee - visit project_project_members_path(project) - end - - it 'does not appear in the project members page' do - page.within first('.content-list') do - expect(page).not_to have_content('test2@abc.com') - end - end + it 'shows the group owner' do + expect(members_table).to have_content(user.name) + expect(members_table).to have_content(group.name) end - context 'with a group' do - it 'shows group and project members by default' do - visit project_project_members_path(project) - - page.within first('.content-list') do - expect(page).to have_content(developer.name) - - expect(page).to have_content(user.name) - expect(page).to have_content(group.name) - end - end - - it 'shows project members only if requested' do - visit project_project_members_path(project, with_inherited_permissions: 'exclude') - - page.within first('.content-list') do - expect(page).to have_content(developer.name) + it 'shows the project developer' do + expect(members_table).to have_content(developer.name) + end - expect(page).not_to have_content(user.name) - expect(page).not_to have_content(group.name) - end - end + it 'shows the project invitee' do + click_link 'Invited' - it 'shows group members only if requested' do - visit project_project_members_path(project, with_inherited_permissions: 'only') + expect(members_table).to have_content('test1@abc.com') + expect(members_table).not_to have_content('test2@abc.com') + end - page.within first('.content-list') do - expect(page).not_to have_content(developer.name) + it 'shows the project requester' do + click_link 'Access requests' - expect(page).to have_content(user.name) - expect(page).to have_content(group.name) - end - end + expect(members_table).to have_content(project_requester.name) + expect(members_table).not_to have_content(group_requester.name) end + end - context 'with a group, a project invitee, and a project requester' do - before do - group.request_access(group_requester) - project.request_access(project_requester) - group_invitee - project_invitee - visit project_project_members_path(project) - end - - it 'shows the group owner' do - page.within first('.content-list') do - # Group owner - expect(page).to have_content(user.name) - expect(page).to have_content(group.name) - end - end - - it 'shows the project developer' do - page.within first('.content-list') do - # Project developer - expect(page).to have_content(developer.name) - end - end - - it 'shows the project invitee' do - click_link 'Invited' - - page.within first('.content-list') do - expect(page).to have_content('test1@abc.com') - expect(page).not_to have_content('test2@abc.com') - end - end - - it 'shows the project requester' do - click_link 'Access requests' - - page.within first('.content-list') do - expect(page).to have_content(project_requester.name) - expect(page).not_to have_content(group_requester.name) - end - end + context 'with a group requester' do + before do + stub_feature_flags(invite_members_group_modal: false) + group.request_access(group_requester) + visit project_project_members_path(project) end - context 'with a group requester' do - before do - stub_feature_flags(invite_members_group_modal: false) - group.request_access(group_requester) - visit project_project_members_path(project) - end - - it 'does not appear in the project members page' do - expect(page).not_to have_link('Access requests') - page.within first('.content-list') do - expect(page).not_to have_content(group_requester.name) - end - end + it 'does not appear in the project members page' do + expect(page).not_to have_link('Access requests') + expect(members_table).not_to have_content(group_requester.name) end + end + + context 'showing status of members' do + it 'shows the status' do + create(:user_status, user: user, emoji: 'smirk', message: 'Authoring this object') - context 'showing status of members' do - it_behaves_like 'showing user status' do - let(:user_with_status) { developer } + visit project_project_members_path(project) - subject { visit project_project_members_path(project) } - end + expect(first_row).to have_selector('gl-emoji[data-name="smirk"]') end end end |