Commit 690db9693fcee3beedc467b48fd9e4bd42ee936d
Committed by
Dmitriy Zaporozhets
1 parent
eb99feb4
Exists in
master
and in
4 other branches
fix tests
Showing
10 changed files
with
47 additions
and
47 deletions
Show diff stats
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
features/admin/teams.feature
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
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 | ... | ... |