From d5453f173332621db2a9a3f680c62b718194cff4 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Mar 2016 17:36:31 +0200 Subject: [PATCH] fixes spec --- app/controllers/spending_proposals_controller.rb | 2 +- spec/features/spending_proposals_spec.rb | 6 ++++-- spec/features/users_spec.rb | 8 ++++---- spec/models/abilities/administrator_spec.rb | 1 + spec/models/abilities/common_spec.rb | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/controllers/spending_proposals_controller.rb b/app/controllers/spending_proposals_controller.rb index 76f230575..015454b86 100644 --- a/app/controllers/spending_proposals_controller.rb +++ b/app/controllers/spending_proposals_controller.rb @@ -29,7 +29,7 @@ class SpendingProposalsController < ApplicationController end def destroy - spending_proposal = current_user.spending_proposals.find(params[:id]) + spending_proposal = SpendingProposal.find(params[:id]) spending_proposal.destroy redirect_to user_path(current_user, filter: 'spending_proposals'), notice: t('flash.actions.destroy.spending_proposal') end diff --git a/spec/features/spending_proposals_spec.rb b/spec/features/spending_proposals_spec.rb index 8462cc77f..5212dace2 100644 --- a/spec/features/spending_proposals_spec.rb +++ b/spec/features/spending_proposals_spec.rb @@ -132,10 +132,12 @@ feature 'Spending proposals' do context "Destroy" do - scenario "User can destroy owned spending proposals" do + scenario "Admin can destroy owned spending proposals" do + admin = create(:administrator) user = create(:user, :level_two) spending_proposal = create(:spending_proposal, author: user) - login_as(user) + + login_as(admin.user) visit user_path(user) within("#spending_proposal_#{spending_proposal.id}") do diff --git a/spec/features/users_spec.rb b/spec/features/users_spec.rb index eff63b18b..93369a2c9 100644 --- a/spec/features/users_spec.rb +++ b/spec/features/users_spec.rb @@ -240,19 +240,19 @@ feature 'Users' do expect(page).to have_content('Build a school') end - scenario 'delete button is shown if logged in user is author' do + scenario 'delete button is not shown if logged in user is author' do login_as(@author) visit user_path(@author) within("#spending_proposal_#{@spending_proposal.id}") do - expect(page).to have_content('Delete') + expect(page).to_not have_content('Delete') end end - scenario 'delete button is not shown if logged in user is admin' do + scenario 'delete button is shown if logged in user is admin' do login_as(create(:administrator).user) visit user_path(@author) within("#spending_proposal_#{@spending_proposal.id}") do - expect(page).to_not have_content('Delete') + expect(page).to have_content('Delete') end end diff --git a/spec/models/abilities/administrator_spec.rb b/spec/models/abilities/administrator_spec.rb index b5ee78dd0..f9ed7a0c5 100644 --- a/spec/models/abilities/administrator_spec.rb +++ b/spec/models/abilities/administrator_spec.rb @@ -55,4 +55,5 @@ describe "Abilities::Administrator" do it { should be_able_to(:read, SpendingProposal) } it { should be_able_to(:update, SpendingProposal) } it { should be_able_to(:valuate, SpendingProposal) } + it { should be_able_to(:destroy, SpendingProposal) } end diff --git a/spec/models/abilities/common_spec.rb b/spec/models/abilities/common_spec.rb index 8c90f7cea..468173797 100644 --- a/spec/models/abilities/common_spec.rb +++ b/spec/models/abilities/common_spec.rb @@ -92,7 +92,7 @@ describe "Abilities::Common" do it { should be_able_to(:create, SpendingProposal) } it { should_not be_able_to(:destroy, create(:spending_proposal)) } - it { should be_able_to(:destroy, own_spending_proposal) } + it { should_not be_able_to(:destroy, own_spending_proposal) } end describe "when level 3 verified" do @@ -104,6 +104,6 @@ describe "Abilities::Common" do it { should be_able_to(:create, SpendingProposal) } it { should_not be_able_to(:destroy, create(:spending_proposal)) } - it { should be_able_to(:destroy, own_spending_proposal) } + it { should_not be_able_to(:destroy, own_spending_proposal) } end end