Skip to content

Commit

Permalink
Add tests for remove group member feature in admin area
Browse files Browse the repository at this point in the history
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
  • Loading branch information
dzaporozhets committed Oct 20, 2014
1 parent ebc0a70 commit 644fd23
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 3 deletions.
1 change: 1 addition & 0 deletions app/controllers/groups/group_members_controller.rb
Expand Up @@ -19,6 +19,7 @@ def update

def destroy
@users_group = @group.group_members.find(params[:id])

if can?(current_user, :destroy, @users_group) # May fail if last owner.
@users_group.destroy
respond_to do |format|
Expand Down
2 changes: 1 addition & 1 deletion app/views/admin/groups/show.html.haml
Expand Up @@ -74,7 +74,7 @@
%ul.well-list.group-users-list
- @members.each do |member|
- user = member.user
%li{class: dom_class(user)}
%li{class: dom_class(member), id: dom_id(user)}
.list-item-name
%strong
= link_to user.name, admin_user_path(user)
Expand Down
7 changes: 7 additions & 0 deletions features/admin/groups.feature
Expand Up @@ -20,3 +20,10 @@ Feature: Admin Groups
When I visit admin group page
When I select user "John Doe" from user list as "Reporter"
Then I should see "John Doe" in team list in every project as "Reporter"

@javascript
Scenario: Remove user from group
Given we have user "John Doe" in group
When I visit admin group page
And I remove user "John Doe" from group
Then I should not see "John Doe" in team list
23 changes: 21 additions & 2 deletions features/steps/admin/groups.rb
Expand Up @@ -37,8 +37,7 @@ class Spinach::Features::AdminGroups < Spinach::FeatureSteps
end

When 'I select user "John Doe" from user list as "Reporter"' do
user = User.find_by(name: "John Doe")
select2(user.id, from: "#user_ids", multiple: true)
select2(user_john.id, from: "#user_ids", multiple: true)
within "#new_team_member" do
select "Reporter", from: "access_level"
end
Expand All @@ -58,9 +57,29 @@ class Spinach::Features::AdminGroups < Spinach::FeatureSteps
end
end

step 'we have user "John Doe" in group' do
current_group.add_user(user_john, Gitlab::Access::REPORTER)
end

step 'I remove user "John Doe" from group' do
within "#user_#{user_john.id}" do
click_link 'Remove user from group'
end
end

step 'I should not see "John Doe" in team list' do
within ".group-users-list" do
page.should_not have_content "John Doe"
end
end

protected

def current_group
@group ||= Group.first
end

def user_john
@user_john ||= User.find_by(name: "John Doe")
end
end

0 comments on commit 644fd23

Please sign in to comment.