Commit 57c803cbd238e5e93da58c96be011d2db6de7319
Committed by
Rafael Manzo
1 parent
5dc4bfb9
Exists in
colab
and in
4 other branches
Covered edit method from ProjectsController with unit tests
Showing
2 changed files
with
28 additions
and
7 deletions
Show diff stats
app/controllers/projects_controller.rb
@@ -44,8 +44,9 @@ class ProjectsController < ApplicationController | @@ -44,8 +44,9 @@ class ProjectsController < ApplicationController | ||
44 | format.html { redirect_to projects_url, notice: "You shall not edit projects that aren't yours." } | 44 | format.html { redirect_to projects_url, notice: "You shall not edit projects that aren't yours." } |
45 | format.json { head :no_content } | 45 | format.json { head :no_content } |
46 | end | 46 | end |
47 | + else | ||
48 | + set_project | ||
47 | end | 49 | end |
48 | - set_project | ||
49 | end | 50 | end |
50 | 51 | ||
51 | def update | 52 | def update |
spec/controllers/projects_controller_spec.rb
@@ -107,21 +107,41 @@ describe ProjectsController do | @@ -107,21 +107,41 @@ describe ProjectsController do | ||
107 | end | 107 | end |
108 | 108 | ||
109 | describe 'edit' do | 109 | describe 'edit' do |
110 | - before :each do | 110 | + before do |
111 | @user = FactoryGirl.create(:user) | 111 | @user = FactoryGirl.create(:user) |
112 | @subject = FactoryGirl.build(:project) | 112 | @subject = FactoryGirl.build(:project) |
113 | FactoryGirl.create(:project_ownership, {user_id: @user.id, project_id: @subject.id}) | 113 | FactoryGirl.create(:project_ownership, {user_id: @user.id, project_id: @subject.id}) |
114 | 114 | ||
115 | sign_in @user | 115 | sign_in @user |
116 | + end | ||
116 | 117 | ||
117 | - Project.expects(:find).with(@subject.id.to_s).returns(@subject) | ||
118 | - get :edit, :id => @subject.id | 118 | + context 'when the user owns the project' do |
119 | + before :each do | ||
120 | + Project.expects(:find).with(@subject.id.to_s).returns(@subject) | ||
121 | + get :edit, :id => @subject.id | ||
122 | + end | ||
123 | + | ||
124 | + it { should render_template(:edit) } | ||
125 | + | ||
126 | + it 'should assign to @project the @subject' do | ||
127 | + assigns(:project).should eq(@subject) | ||
128 | + end | ||
119 | end | 129 | end |
120 | 130 | ||
121 | - it { should render_template(:edit) } | 131 | + context 'when the user does not own the project' do |
132 | + before do | ||
133 | + @subject = FactoryGirl.build(:another_project) | ||
122 | 134 | ||
123 | - it 'should assign to @project the @subject' do | ||
124 | - assigns(:project).should eq(@subject) | 135 | + get :edit, :id => @subject.id |
136 | + end | ||
137 | + | ||
138 | + it { should redirect_to(projects_path) } | ||
139 | + | ||
140 | + it 'should set the flash' do | ||
141 | + pending("This ShouldaMatcher test is not compatible yet with Rails 4") do | ||
142 | + should set_the_flash[:notice].to("You shall not edit projects that aren't yours.") | ||
143 | + end | ||
144 | + end | ||
125 | end | 145 | end |
126 | end | 146 | end |
127 | 147 |