Admin teams section added
This commit is contained in:
parent
8a86fe7bb0
commit
82499a4cbf
10 changed files with 603 additions and 0 deletions
222
features/steps/admin/admin_teams.rb
Normal file
222
features/steps/admin/admin_teams.rb
Normal file
|
@ -0,0 +1,222 @@
|
|||
class AdminTeams < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedPaths
|
||||
include SharedActiveTab
|
||||
include SharedAdmin
|
||||
|
||||
And 'I have own project' do
|
||||
create :project
|
||||
end
|
||||
|
||||
And 'Create gitlab user "John"' do
|
||||
@user = create(:user, :name => "John")
|
||||
end
|
||||
|
||||
And 'I click new team link' do
|
||||
click_link "New Team"
|
||||
end
|
||||
|
||||
And 'submit form with new team info' do
|
||||
fill_in 'user_team_name', with: 'gitlab'
|
||||
click_button 'Create team'
|
||||
end
|
||||
|
||||
Then 'I should be redirected to team page' do
|
||||
current_path.should == admin_team_path(UserTeam.last)
|
||||
end
|
||||
|
||||
And 'I should see newly created team' do
|
||||
page.should have_content "Team: gitlab"
|
||||
end
|
||||
|
||||
When 'I visit admin teams page' do
|
||||
visit admin_teams_path
|
||||
end
|
||||
|
||||
When 'I have clean "HardCoders" team' do
|
||||
@team = create :user_team, name: "HardCoders", owner: current_user
|
||||
end
|
||||
|
||||
And 'I visit "HardCoders" team page' do
|
||||
visit admin_team_path(UserTeam.find_by_name("HardCoders"))
|
||||
end
|
||||
|
||||
Then 'I should see only me in members table' do
|
||||
members_list = find("#members_list .member")
|
||||
members_list.should have_content(current_user.name)
|
||||
members_list.should have_content(current_user.email)
|
||||
end
|
||||
|
||||
When 'I select user "John" from user list as "Developer"' do
|
||||
@user ||= User.find_by_name("John")
|
||||
within "#team_members" do
|
||||
select user.name, :from => "user_ids"
|
||||
select "Developer", :from => "default_project_access"
|
||||
end
|
||||
end
|
||||
|
||||
And 'submit form with new team member info' do
|
||||
click_button 'add_members_to_team'
|
||||
end
|
||||
|
||||
Then 'I should see "John" in teams members list as "Developer"' do
|
||||
@user ||= User.find_by_name("John")
|
||||
find_in_list("#members_list .member", user).must_equal true
|
||||
end
|
||||
|
||||
When 'I visit "John" user admin page' do
|
||||
pending 'step not implemented'
|
||||
end
|
||||
|
||||
Then 'I should see "HardCoders" team in teams table' do
|
||||
pending 'step not implemented'
|
||||
end
|
||||
|
||||
When 'I have "HardCoders" team with "John" member with "Developer" role' do
|
||||
@team = create :user_team, name: "HardCoders", owner: current_user
|
||||
@user ||= User.find_by_name("John")
|
||||
@team.add_member(@user, UserTeam.access_roles["Developer"], group_admin: false)
|
||||
end
|
||||
|
||||
When 'I have "Shop" project' do
|
||||
@project = create :project, name: "Shop"
|
||||
end
|
||||
|
||||
Then 'I should see empty projects table' do
|
||||
projects_list = find("#projects_list")
|
||||
projects_list.has_content?("Relegate").must_equal false
|
||||
end
|
||||
|
||||
When 'I select project "Shop" with max access "Reporter"' do
|
||||
@project ||= Project.find_by_name("Shop")
|
||||
within "#assign_projects" do
|
||||
select @project.name, :from => "project_ids"
|
||||
select "Reporter", :from => "greatest_project_access"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
And 'submit form with new team project info' do
|
||||
click_button 'assign_projects_to_team'
|
||||
end
|
||||
|
||||
Then 'I should see "Shop" project in projects list' do
|
||||
project = Project.find_by_name("Shop")
|
||||
find_in_list("#projects_list .project", project).must_equal true
|
||||
end
|
||||
|
||||
When 'I visit "Shop" project admin page' do
|
||||
project = Project.find_by_name("Shop")
|
||||
visit admin_project_path(project)
|
||||
end
|
||||
|
||||
And '"HardCoders" team assigned to "Shop" project with "Developer" max role access' do
|
||||
@team = UserTeam.find_by_name("HardCoders")
|
||||
@project = create :project, name: "Shop"
|
||||
@team.assign_to_project(@project, UserTeam.access_roles["Developer"])
|
||||
end
|
||||
|
||||
When 'I have gitlab user "Jimm"' do
|
||||
create :user, name: "Jimm"
|
||||
end
|
||||
|
||||
Then 'I should see members table without "Jimm" member' do
|
||||
user = User.find_by_name("Jimm")
|
||||
find_in_list("#members_list .member", user).must_equal false
|
||||
end
|
||||
|
||||
When 'I select user "Jimm" ub team members list as "Master"' do
|
||||
user = User.find_by_name("Jimm")
|
||||
within "#team_members" do
|
||||
select user.name, :from => "user_ids"
|
||||
select "Developer", :from => "default_project_access"
|
||||
end
|
||||
end
|
||||
|
||||
Then 'I should see "Jimm" in teams members list as "Master"' do
|
||||
user = User.find_by_name("Jimm")
|
||||
find_in_list("#members_list .member", user).must_equal true
|
||||
end
|
||||
|
||||
Given 'I have users team "HardCoders"' do
|
||||
@team = create :user_team, name: "HardCoders"
|
||||
end
|
||||
|
||||
And 'gitlab user "John" is a member "HardCoders" team' do
|
||||
@team = UserTeam.find_by_name("HardCoders")
|
||||
@user = User.find_by_name("John")
|
||||
@user = create :user, name: "John" unless @user
|
||||
@team.add_member(@user, UserTeam.access_roles["Master"], group_admin: false)
|
||||
end
|
||||
|
||||
And 'gitlab user "Jimm" is a member "HardCoders" team' do
|
||||
@team = UserTeam.find_by_name("HardCoders")
|
||||
@user = User.find_by_name("Jimm")
|
||||
@user = create :user, name: "Jimm" unless @user
|
||||
@team.add_member(@user, UserTeam.access_roles["Master"], group_admin: false)
|
||||
end
|
||||
|
||||
And '"HardCoders" team is assigned to "Shop" project' do
|
||||
@team = UserTeam.find_by_name("HardCoders")
|
||||
@project = create :project, name: "Shop"
|
||||
@team.assign_to_project(@project, UserTeam.access_roles["Developer"])
|
||||
end
|
||||
|
||||
When 'I visit "HardCoders" team admin page' do
|
||||
visit admin_team_path(UserTeam.find_by_name("HardCoders"))
|
||||
end
|
||||
|
||||
Then 'I shoould see "John" in members list' do
|
||||
user = User.find_by_name("John")
|
||||
find_in_list("#members_list .member", user).must_equal true
|
||||
end
|
||||
|
||||
And 'I should see "Jimm" in members list' do
|
||||
user = User.find_by_name("Jimm")
|
||||
find_in_list("#members_list .member", user).must_equal true
|
||||
end
|
||||
|
||||
And 'I should see "Shop" in projects list' do
|
||||
|
||||
end
|
||||
|
||||
When 'I click on remove "Jimm" user link' do
|
||||
|
||||
end
|
||||
|
||||
Then 'I should be redirected to "HardCoders" team admin page' do
|
||||
current_path.should admin_team_peth(UserTeam.find_by_name("HardCoders"))
|
||||
end
|
||||
|
||||
And 'I should not to see "Jimm" user in members list' do
|
||||
|
||||
end
|
||||
|
||||
When 'I click on "Relegate" link on "Shop" project' do
|
||||
|
||||
end
|
||||
|
||||
Then 'I should see projects liston team page without "Shop" project' do
|
||||
|
||||
end
|
||||
|
||||
Then 'I should see "John" user with role "Reporter" in team table' do
|
||||
user = User.find_by_name("John")
|
||||
find_in_list(".team_members", user).must_equal true
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def current_team
|
||||
@team ||= Team.first
|
||||
end
|
||||
|
||||
def find_in_list(selector, item)
|
||||
members_list = all(selector)
|
||||
entered = false
|
||||
members_list.each do |member_item|
|
||||
entered = true if member_item.has_content?(item.name)
|
||||
end
|
||||
entered
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue