Commit 690db9693fcee3beedc467b48fd9e4bd42ee936d

Authored by Andrey Kumanyaev
Committed by Dmitriy Zaporozhets
1 parent eb99feb4

fix tests

app/controllers/admin/teams/members_controller.rb
@@ -30,11 +30,8 @@ class Admin::Teams::MembersController < Admin::Teams::ApplicationController @@ -30,11 +30,8 @@ class Admin::Teams::MembersController < Admin::Teams::ApplicationController
30 end 30 end
31 31
32 def destroy 32 def destroy
33 - if user_team.remove_member(team_member)  
34 - redirect_to admin_team_path(user_team), notice: "Member #{team_member.name} was successfully removed from Team of users."  
35 - else  
36 - redirect_to admin_team_members(user_team), notice: "Something is wrong."  
37 - end 33 + user_team.remove_member(team_member)
  34 + redirect_to admin_team_path(user_team), notice: "Member #{team_member.name} was successfully removed from Team of users."
38 end 35 end
39 36
40 protected 37 protected
app/controllers/teams/members_controller.rb
@@ -20,7 +20,7 @@ class Teams::MembersController < Teams::ApplicationController @@ -20,7 +20,7 @@ class Teams::MembersController < Teams::ApplicationController
20 user_team.add_members(user_ids, access, is_admin) 20 user_team.add_members(user_ids, access, is_admin)
21 end 21 end
22 22
23 - redirect_to team_path(user_team), notice: 'Members was successfully added into Team of users.' 23 + redirect_to team_members_path(user_team), notice: 'Members was successfully added into Team of users.'
24 end 24 end
25 25
26 def edit 26 def edit
@@ -30,18 +30,15 @@ class Teams::MembersController < Teams::ApplicationController @@ -30,18 +30,15 @@ class Teams::MembersController < Teams::ApplicationController
30 def update 30 def update
31 options = {default_projects_access: params[:default_project_access], group_admin: params[:group_admin]} 31 options = {default_projects_access: params[:default_project_access], group_admin: params[:group_admin]}
32 if user_team.update_membership(team_member, options) 32 if user_team.update_membership(team_member, options)
33 - redirect_to team_path(user_team), notice: "Membership for #{team_member.name} was successfully updated in Team of users." 33 + redirect_to team_members_path(user_team), notice: "Membership for #{team_member.name} was successfully updated in Team of users."
34 else 34 else
35 render :edit 35 render :edit
36 end 36 end
37 end 37 end
38 38
39 def destroy 39 def destroy
40 - if user_team.remove_member(team_member)  
41 - redirect_to team_path(user_team), notice: "Member #{team_member.name} was successfully removed from Team of users."  
42 - else  
43 - redirect_to team_members(user_team), notice: "Something is wrong."  
44 - end 40 + user_team.remove_member(team_member)
  41 + redirect_to team_path(user_team), notice: "Member #{team_member.name} was successfully removed from Team of users."
45 end 42 end
46 43
47 protected 44 protected
app/views/admin/teams/show.html.haml
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 %th Team access 52 %th Team access
53 %th.cred.span3 Danger Zone! 53 %th.cred.span3 Danger Zone!
54 - @team.members.each do |member| 54 - @team.members.each do |member|
55 - %tr.member 55 + %tr.member{ class: "user_#{member.id}"}
56 %td 56 %td
57 = link_to [:admin, member] do 57 = link_to [:admin, member] do
58 = member.name 58 = member.name
@@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@
62 %td.bgred 62 %td.bgred
63 = link_to 'Edit', edit_admin_team_member_path(@team, member), class: "btn small" 63 = link_to 'Edit', edit_admin_team_member_path(@team, member), class: "btn small"
64   64  
65 - = link_to 'Remove', admin_team_member_path(@team, member), confirm: 'Remove member from team. Are you sure?', method: :delete, class: "btn danger small" 65 + = link_to 'Remove', admin_team_member_path(@team, member), confirm: 'Remove member from team. Are you sure?', method: :delete, class: "btn danger small", id: "remove_member_#{member.id}"
66 66
67 %fieldset 67 %fieldset
68 %legend 68 %legend
@@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
84 %td.bgred 84 %td.bgred
85 = link_to 'Edit', edit_admin_team_project_path(@team, project), class: "btn small" 85 = link_to 'Edit', edit_admin_team_project_path(@team, project), class: "btn small"
86   86  
87 - = link_to 'Relegate', admin_team_project_path(@team, project), confirm: 'Remove project from team. Are you sure?', method: :delete, class: "btn danger small" 87 + = link_to 'Relegate', admin_team_project_path(@team, project), confirm: 'Remove project from team. Are you sure?', method: :delete, class: "btn danger small", id: "relegate_project_#{project.id}"
88 88
89 :javascript 89 :javascript
90 $(function(){ 90 $(function(){
app/views/teams/projects/index.html.haml
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 13
14 %hr 14 %hr
15 15
16 -%table 16 +%table.projects-table
17 %thead 17 %thead
18 %tr 18 %tr
19 %th Project name 19 %th Project name
features/admin/teams.feature
1 Feature: Admin Teams 1 Feature: Admin Teams
2 Background: 2 Background:
3 Given I sign in as an admin 3 Given I sign in as an admin
4 - #And there are projects in system  
5 - #And system has users  
6 - #And I have own project  
7 And Create gitlab user "John" 4 And Create gitlab user "John"
8 5
9 Scenario: Create a team 6 Scenario: Create a team
features/steps/admin/admin_teams.rb
@@ -83,8 +83,7 @@ class AdminTeams < Spinach::FeatureSteps @@ -83,8 +83,7 @@ class AdminTeams < Spinach::FeatureSteps
83 end 83 end
84 84
85 Then 'I should see empty projects table' do 85 Then 'I should see empty projects table' do
86 - projects_list = find("#projects_list")  
87 - projects_list.has_content?("Relegate").must_equal false 86 + page.has_no_css?("#projects_list").must_equal true
88 end 87 end
89 88
90 When 'I select project "Shop" with max access "Reporter"' do 89 When 'I select project "Shop" with max access "Reporter"' do
@@ -177,11 +176,13 @@ class AdminTeams < Spinach::FeatureSteps @@ -177,11 +176,13 @@ class AdminTeams < Spinach::FeatureSteps
177 end 176 end
178 177
179 And 'I should see "Shop" in projects list' do 178 And 'I should see "Shop" in projects list' do
180 - 179 + project = Project.find_by_name("Shop")
  180 + find_in_list("#projects_list .project", project).must_equal true
181 end 181 end
182 182
183 When 'I click on remove "Jimm" user link' do 183 When 'I click on remove "Jimm" user link' do
184 - 184 + user = User.find_by_name("Jimm")
  185 + click_link "remove_member_#{user.id}"
185 end 186 end
186 187
187 Then 'I should be redirected to "HardCoders" team admin page' do 188 Then 'I should be redirected to "HardCoders" team admin page' do
@@ -189,15 +190,18 @@ class AdminTeams < Spinach::FeatureSteps @@ -189,15 +190,18 @@ class AdminTeams < Spinach::FeatureSteps
189 end 190 end
190 191
191 And 'I should not to see "Jimm" user in members list' do 192 And 'I should not to see "Jimm" user in members list' do
192 - 193 + user = User.find_by_name("Jimm")
  194 + find_in_list("#members_list .member", user).must_equal false
193 end 195 end
194 196
195 When 'I click on "Relegate" link on "Shop" project' do 197 When 'I click on "Relegate" link on "Shop" project' do
196 - 198 + project = Project.find_by_name("Shop")
  199 + click_link "relegate_project_#{project.id}"
197 end 200 end
198 201
199 Then 'I should see projects liston team page without "Shop" project' do 202 Then 'I should see projects liston team page without "Shop" project' do
200 - 203 + project = Project.find_by_name("Shop")
  204 + find_in_list("#projects_list .project", project).must_equal false
201 end 205 end
202 206
203 Then 'I should see "John" user with role "Reporter" in team table' do 207 Then 'I should see "John" user with role "Reporter" in team table' do
features/steps/userteams/userteams.rb
@@ -175,7 +175,12 @@ class Userteams < Spinach::FeatureSteps @@ -175,7 +175,12 @@ class Userteams < Spinach::FeatureSteps
175 end 175 end
176 176
177 And 'I select user "John" from list with role "Reporter"' do 177 And 'I select user "John" from list with role "Reporter"' do
178 - pending 'step not implemented' 178 + user = User.find_by_name("John")
  179 + within "#team_members" do
  180 + select user.name, :from => "user_ids"
  181 + select "Reporter", :from => "default_project_access"
  182 + end
  183 + click_button "Add"
179 end 184 end
180 185
181 Then 'I should see user "John" in team list' do 186 Then 'I should see user "John" in team list' do
@@ -185,7 +190,7 @@ class Userteams < Spinach::FeatureSteps @@ -185,7 +190,7 @@ class Userteams < Spinach::FeatureSteps
185 end 190 end
186 191
187 And 'I have my own project without teams' do 192 And 'I have my own project without teams' do
188 - project = create :project, creator: current_user 193 + @project = create :project, creator: current_user
189 end 194 end
190 195
191 And 'I visit my team page' do 196 And 'I visit my team page' do
@@ -197,27 +202,26 @@ class Userteams < Spinach::FeatureSteps @@ -197,27 +202,26 @@ class Userteams < Spinach::FeatureSteps
197 click_link "Projects" 202 click_link "Projects"
198 end 203 end
199 204
  205 + And 'I click link "Assign project to Team"' do
  206 + click_link "Assign project to Team"
  207 + end
  208 +
200 Then 'I should see form with my own project in avaliable projects list' do 209 Then 'I should see form with my own project in avaliable projects list' do
201 - project = current_user.projects.first  
202 projects_select = find("#project_ids") 210 projects_select = find("#project_ids")
203 - projects_select.should have_content(project.name) 211 + projects_select.should have_content(@project.name)
204 end 212 end
205 213
206 When 'I submit form with selected project and max access' do 214 When 'I submit form with selected project and max access' do
207 - project = current_user.projects.first  
208 - within "#team_projects" do  
209 - select project.name, :from => "project_ids" 215 + within "#assign_projects" do
  216 + select @project.name, :from => "project_ids"
210 select "Reporter", :from => "greatest_project_access" 217 select "Reporter", :from => "greatest_project_access"
211 end 218 end
212 click_button "Add" 219 click_button "Add"
213 end 220 end
214 221
215 Then 'I should see my own project in team projects list' do 222 Then 'I should see my own project in team projects list' do
216 - project = current_user.projects.first  
217 - projects = all("table .project")  
218 - projects.each do |project_row|  
219 - project_row.should have_content(project.name)  
220 - end 223 + projects = find(".projects-table")
  224 + projects.should have_content(@project.name)
221 end 225 end
222 226
223 When 'I click link "New Team Member"' do 227 When 'I click link "New Team Member"' do
@@ -227,7 +231,7 @@ class Userteams < Spinach::FeatureSteps @@ -227,7 +231,7 @@ class Userteams < Spinach::FeatureSteps
227 protected 231 protected
228 232
229 def current_team 233 def current_team
230 - @user_team ||= Team.first 234 + @user_team ||= UserTeam.first
231 end 235 end
232 236
233 def project 237 def project
features/support/env.rb
@@ -21,7 +21,7 @@ Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file} @@ -21,7 +21,7 @@ Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file}
21 include GitoliteStub 21 include GitoliteStub
22 22
23 WebMock.allow_net_connect! 23 WebMock.allow_net_connect!
24 - 24 +Spinach.config.save_and_open_page_on_failure = true
25 # 25 #
26 # JS driver 26 # JS driver
27 # 27 #
features/teams/team.feature
@@ -70,6 +70,7 @@ Feature: UserTeams @@ -70,6 +70,7 @@ Feature: UserTeams
70 And I have my own project without teams 70 And I have my own project without teams
71 And I visit my team page 71 And I visit my team page
72 When I click on link "Projects" 72 When I click on link "Projects"
  73 + And I click link "Assign project to Team"
73 Then I should see form with my own project in avaliable projects list 74 Then I should see form with my own project in avaliable projects list
74 When I submit form with selected project and max access 75 When I submit form with selected project and max access
75 Then I should see my own project in team projects list 76 Then I should see my own project in team projects list
spec/routing/admin_routing_spec.rb
@@ -95,20 +95,20 @@ describe Admin::ProjectsController, "routing" do @@ -95,20 +95,20 @@ describe Admin::ProjectsController, "routing" do
95 end 95 end
96 end 96 end
97 97
98 -# edit_admin_team_member GET /admin/team_members/:id/edit(.:format) admin/team_members#edit  
99 -# admin_team_member PUT /admin/team_members/:id(.:format) admin/team_members#update  
100 -# DELETE /admin/team_members/:id(.:format) admin/team_members#destroy  
101 -describe Admin::TeamMembersController, "routing" do 98 +# edit_admin_project_member GET /admin/projects/:project_id/members/:id/edit(.:format) admin/projects/members#edit {:id=>/[^\/]+/, :project_id=>/[^\/]+/}
  99 +# admin_project_member PUT /admin/projects/:project_id/members/:id(.:format) admin/projects/members#update {:id=>/[^\/]+/, :project_id=>/[^\/]+/}
  100 +# DELETE /admin/projects/:project_id/members/:id(.:format) admin/projects/members#destroy {:id=>/[^\/]+/, :project_id=>/[^\/]+/}
  101 +describe Admin::Projects::MembersController, "routing" do
102 it "to #edit" do 102 it "to #edit" do
103 - get("/admin/team_members/1/edit").should route_to('admin/team_members#edit', id: '1') 103 + get("/admin/projects/test/members/1/edit").should route_to('admin/projects/members#edit', project_id: 'test', id: '1')
104 end 104 end
105 105
106 it "to #update" do 106 it "to #update" do
107 - put("/admin/team_members/1").should route_to('admin/team_members#update', id: '1') 107 + put("/admin/projects/test/members/1").should route_to('admin/projects/members#update', project_id: 'test', id: '1')
108 end 108 end
109 109
110 it "to #destroy" do 110 it "to #destroy" do
111 - delete("/admin/team_members/1").should route_to('admin/team_members#destroy', id: '1') 111 + delete("/admin/projects/test/members/1").should route_to('admin/projects/members#destroy', project_id: 'test', id: '1')
112 end 112 end
113 end 113 end
114 114