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 | ... | ... |