fix(dossiers_transfers): can destroy dossiers_transfers
This commit is contained in:
parent
7a95963165
commit
ff5fecef25
2 changed files with 18 additions and 11 deletions
|
@ -19,9 +19,7 @@ module Users
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
transfer = DossierTransfer
|
transfer = DossierTransfer.find_by!(id: params[:id], email: current_user.email)
|
||||||
.joins(:dossiers)
|
|
||||||
.find_by!(id: params[:id], dossiers: { user: current_user })
|
|
||||||
|
|
||||||
transfer.destroy_and_nullify
|
transfer.destroy_and_nullify
|
||||||
redirect_to dossiers_path
|
redirect_to dossiers_path
|
||||||
|
|
|
@ -1,23 +1,32 @@
|
||||||
describe Users::TransfersController, type: :controller do
|
describe Users::TransfersController, type: :controller do
|
||||||
let(:user) { create(:user) }
|
let(:sender_user) { create(:user) }
|
||||||
let(:dossier) { create(:dossier, user: user) }
|
let(:recipient_user) { create(:user) }
|
||||||
|
let(:dossier) { create(:dossier, user: sender_user) }
|
||||||
before { sign_in(user) }
|
|
||||||
|
|
||||||
describe 'DELETE destroy' do
|
describe 'DELETE destroy' do
|
||||||
let(:dossier_transfert) { DossierTransfer.initiate(user.email, [dossier]) }
|
let(:dossier_transfert) { DossierTransfer.initiate(recipient_user.email, [dossier]) }
|
||||||
|
|
||||||
|
subject { delete :destroy, params: { id: dossier_transfert.id } }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
delete :destroy, params: { id: dossier_transfert.id }
|
sign_in(recipient_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect { dossier_transfert.reload }.to raise_error(ActiveRecord::RecordNotFound) }
|
it { expect { subject }.not_to raise_error }
|
||||||
|
|
||||||
|
it "deletes dossier transfert" do
|
||||||
|
subject
|
||||||
|
expect { dossier_transfert.reload }.to raise_error(ActiveRecord::RecordNotFound)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "POST create" do
|
describe "POST create" do
|
||||||
subject { post :create, params: { dossier_transfer: { email: email, dossier: dossier.id } } }
|
subject { post :create, params: { dossier_transfer: { email: email, dossier: dossier.id } } }
|
||||||
|
|
||||||
before { subject }
|
before do
|
||||||
|
sign_in(sender_user)
|
||||||
|
subject
|
||||||
|
end
|
||||||
|
|
||||||
context "with valid email" do
|
context "with valid email" do
|
||||||
let(:email) { "test@rspec.net" }
|
let(:email) { "test@rspec.net" }
|
||||||
|
|
Loading…
Add table
Reference in a new issue