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 30 end
31 31  
32 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 35 end
39 36  
40 37 protected
... ...
app/controllers/teams/members_controller.rb
... ... @@ -20,7 +20,7 @@ class Teams::MembersController < Teams::ApplicationController
20 20 user_team.add_members(user_ids, access, is_admin)
21 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 24 end
25 25  
26 26 def edit
... ... @@ -30,18 +30,15 @@ class Teams::MembersController < Teams::ApplicationController
30 30 def update
31 31 options = {default_projects_access: params[:default_project_access], group_admin: params[:group_admin]}
32 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 34 else
35 35 render :edit
36 36 end
37 37 end
38 38  
39 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 42 end
46 43  
47 44 protected
... ...
app/views/admin/teams/show.html.haml
... ... @@ -52,7 +52,7 @@
52 52 %th Team access
53 53 %th.cred.span3 Danger Zone!
54 54 - @team.members.each do |member|
55   - %tr.member
  55 + %tr.member{ class: "user_#{member.id}"}
56 56 %td
57 57 = link_to [:admin, member] do
58 58 = member.name
... ... @@ -62,7 +62,7 @@
62 62 %td.bgred
63 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 67 %fieldset
68 68 %legend
... ... @@ -84,7 +84,7 @@
84 84 %td.bgred
85 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 89 :javascript
90 90 $(function(){
... ...
app/views/teams/projects/index.html.haml
... ... @@ -13,7 +13,7 @@
13 13  
14 14 %hr
15 15  
16   -%table
  16 +%table.projects-table
17 17 %thead
18 18 %tr
19 19 %th Project name
... ...
features/admin/teams.feature
1 1 Feature: Admin Teams
2 2 Background:
3 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 4 And Create gitlab user "John"
8 5  
9 6 Scenario: Create a team
... ...
features/steps/admin/admin_teams.rb
... ... @@ -83,8 +83,7 @@ class AdminTeams < Spinach::FeatureSteps
83 83 end
84 84  
85 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 87 end
89 88  
90 89 When 'I select project "Shop" with max access "Reporter"' do
... ... @@ -177,11 +176,13 @@ class AdminTeams < Spinach::FeatureSteps
177 176 end
178 177  
179 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 181 end
182 182  
183 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 186 end
186 187  
187 188 Then 'I should be redirected to "HardCoders" team admin page' do
... ... @@ -189,15 +190,18 @@ class AdminTeams < Spinach::FeatureSteps
189 190 end
190 191  
191 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 195 end
194 196  
195 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 200 end
198 201  
199 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 205 end
202 206  
203 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 175 end
176 176  
177 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 184 end
180 185  
181 186 Then 'I should see user "John" in team list' do
... ... @@ -185,7 +190,7 @@ class Userteams < Spinach::FeatureSteps
185 190 end
186 191  
187 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 194 end
190 195  
191 196 And 'I visit my team page' do
... ... @@ -197,27 +202,26 @@ class Userteams < Spinach::FeatureSteps
197 202 click_link "Projects"
198 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 209 Then 'I should see form with my own project in avaliable projects list' do
201   - project = current_user.projects.first
202 210 projects_select = find("#project_ids")
203   - projects_select.should have_content(project.name)
  211 + projects_select.should have_content(@project.name)
204 212 end
205 213  
206 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 217 select "Reporter", :from => "greatest_project_access"
211 218 end
212 219 click_button "Add"
213 220 end
214 221  
215 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 225 end
222 226  
223 227 When 'I click link "New Team Member"' do
... ... @@ -227,7 +231,7 @@ class Userteams < Spinach::FeatureSteps
227 231 protected
228 232  
229 233 def current_team
230   - @user_team ||= Team.first
  234 + @user_team ||= UserTeam.first
231 235 end
232 236  
233 237 def project
... ...
features/support/env.rb
... ... @@ -21,7 +21,7 @@ Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file}
21 21 include GitoliteStub
22 22  
23 23 WebMock.allow_net_connect!
24   -
  24 +Spinach.config.save_and_open_page_on_failure = true
25 25 #
26 26 # JS driver
27 27 #
... ...
features/teams/team.feature
... ... @@ -70,6 +70,7 @@ Feature: UserTeams
70 70 And I have my own project without teams
71 71 And I visit my team page
72 72 When I click on link "Projects"
  73 + And I click link "Assign project to Team"
73 74 Then I should see form with my own project in avaliable projects list
74 75 When I submit form with selected project and max access
75 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 95 end
96 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 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 104 end
105 105  
106 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 108 end
109 109  
110 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 112 end
113 113 end
114 114  
... ...