From a67ff8e8835e3594783de0d198f5dcce24145c6d Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 26 Jun 2017 16:50:16 +0200 Subject: Move "remove group member" spec from spinach to rspec Signed-off-by: Dmitriy Zaporozhets --- features/group/members.feature | 12 --- spec/features/groups/members/list_members_spec.rb | 63 ---------------- spec/features/groups/members/manage_members.rb | 92 +++++++++++++++++++++++ 3 files changed, 92 insertions(+), 75 deletions(-) diff --git a/features/group/members.feature b/features/group/members.feature index 5ff75ab3a5b..a7e51339e12 100644 --- a/features/group/members.feature +++ b/features/group/members.feature @@ -4,18 +4,6 @@ Feature: Group Members And "John Doe" is owner of group "Owned" And "John Doe" is guest of group "Guest" - # Remove others - - Scenario: Owner should be able to remove other users from group - Given "Mary Jane" is owner of group "Owned" - When I visit group "Owned" members page - Then I should see user "John Doe" in team list - Then I should see user "Mary Jane" in team list - When I click on the "Remove User From Group" button for "Mary Jane" - When I visit group "Owned" members page - Then I should see user "John Doe" in team list - Then I should not see user "Mary Jane" in team list - Scenario: Guest should not be able to remove other users from group Given "Mary Jane" is guest of group "Guest" When I visit group "Guest" members page diff --git a/spec/features/groups/members/list_members_spec.rb b/spec/features/groups/members/list_members_spec.rb index 69cbeb4a35a..f6493c4c50e 100644 --- a/spec/features/groups/members/list_members_spec.rb +++ b/spec/features/groups/members/list_members_spec.rb @@ -32,60 +32,6 @@ feature 'Groups > Members > List members', feature: true do expect(second_row).to be_blank end - scenario 'update user to owner level', :js do - group.add_owner(user1) - group.add_developer(user2) - - visit group_group_members_path(group) - - page.within(second_row) do - click_button('Developer') - click_link('Owner') - - expect(page).to have_button('Owner') - end - end - - scenario 'add user to group', :js do - group.add_owner(user1) - - visit group_group_members_path(group) - - add_user(user2.id, 'Reporter') - - page.within(second_row) do - expect(page).to have_content(user2.name) - expect(page).to have_button('Reporter') - end - end - - scenario 'add yourself to group when already an owner', :js do - group.add_owner(user1) - - visit group_group_members_path(group) - - add_user(user1.id, 'Reporter') - - page.within(first_row) do - expect(page).to have_content(user1.name) - expect(page).to have_content('Owner') - end - end - - scenario 'invite user to group', :js do - group.add_owner(user1) - - visit group_group_members_path(group) - - add_user('test@example.com', 'Reporter') - - page.within(second_row) do - expect(page).to have_content('test@example.com') - expect(page).to have_content('Invited') - expect(page).to have_button('Reporter') - end - end - def first_row page.all('ul.content-list > li')[0] end @@ -93,13 +39,4 @@ feature 'Groups > Members > List members', feature: true do def second_row page.all('ul.content-list > li')[1] end - - def add_user(id, role) - page.within ".users-group-form" do - select2(id, from: "#user_ids", multiple: true) - select(role, from: "access_level") - end - - click_button "Add to group" - end end diff --git a/spec/features/groups/members/manage_members.rb b/spec/features/groups/members/manage_members.rb index ff0a09709e5..d5925a13401 100644 --- a/spec/features/groups/members/manage_members.rb +++ b/spec/features/groups/members/manage_members.rb @@ -1,4 +1,96 @@ require 'spec_helper' feature 'Groups > Members > Manage members', feature: true do + include Select2Helper + + let(:user1) { create(:user, name: 'John Doe') } + let(:user2) { create(:user, name: 'Mary Jane') } + let(:group) { create(:group) } + + background do + gitlab_sign_in(user1) + end + + scenario 'update user to owner level', :js do + group.add_owner(user1) + group.add_developer(user2) + + visit group_group_members_path(group) + + page.within(second_row) do + click_button('Developer') + click_link('Owner') + + expect(page).to have_button('Owner') + end + end + + scenario 'add user to group', :js do + group.add_owner(user1) + + visit group_group_members_path(group) + + add_user(user2.id, 'Reporter') + + page.within(second_row) do + expect(page).to have_content(user2.name) + expect(page).to have_button('Reporter') + end + end + + scenario 'remove user from group', :js do + group.add_owner(user1) + group.add_developer(user2) + + visit group_group_members_path(group) + + find(:css, '.project-members-page li', text: user2.name).find(:css, 'a.btn-remove').click + + expect(page).not_to have_content(user2.name) + expect(group.users).not_to include(user2) + end + + scenario 'add yourself to group when already an owner', :js do + group.add_owner(user1) + + visit group_group_members_path(group) + + add_user(user1.id, 'Reporter') + + page.within(first_row) do + expect(page).to have_content(user1.name) + expect(page).to have_content('Owner') + end + end + + scenario 'invite user to group', :js do + group.add_owner(user1) + + visit group_group_members_path(group) + + add_user('test@example.com', 'Reporter') + + page.within(second_row) do + expect(page).to have_content('test@example.com') + expect(page).to have_content('Invited') + expect(page).to have_button('Reporter') + end + end + + def first_row + page.all('ul.content-list > li')[0] + end + + def second_row + page.all('ul.content-list > li')[1] + end + + def add_user(id, role) + page.within ".users-group-form" do + select2(id, from: "#user_ids", multiple: true) + select(role, from: "access_level") + end + + click_button "Add to group" + end end -- cgit v1.2.1