NewDesign: add follow and unfollow actions on dossier
This commit is contained in:
parent
013f2463d1
commit
eb65318844
3 changed files with 33 additions and 1 deletions
|
@ -4,6 +4,16 @@ module NewGestionnaire
|
||||||
send_data(dossier.attestation.pdf.read, filename: 'attestation.pdf', type: 'application/pdf')
|
send_data(dossier.attestation.pdf.read, filename: 'attestation.pdf', type: 'application/pdf')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def follow
|
||||||
|
current_gestionnaire.followed_dossiers << dossier
|
||||||
|
redirect_back(fallback_location: procedures_url)
|
||||||
|
end
|
||||||
|
|
||||||
|
def unfollow
|
||||||
|
current_gestionnaire.followed_dossiers.delete(dossier)
|
||||||
|
redirect_back(fallback_location: procedures_url)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def dossier
|
def dossier
|
||||||
|
|
|
@ -242,6 +242,8 @@ Rails.application.routes.draw do
|
||||||
member do
|
member do
|
||||||
resources :dossiers, only: [] do
|
resources :dossiers, only: [] do
|
||||||
get 'attestation'
|
get 'attestation'
|
||||||
|
patch 'follow'
|
||||||
|
patch 'unfollow'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,12 +2,14 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe NewGestionnaire::DossiersController, type: :controller do
|
describe NewGestionnaire::DossiersController, type: :controller do
|
||||||
let(:gestionnaire) { create(:gestionnaire) }
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
|
let(:procedure) { create(:procedure, gestionnaires: [gestionnaire]) }
|
||||||
|
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||||
|
|
||||||
before { sign_in(gestionnaire) }
|
before { sign_in(gestionnaire) }
|
||||||
|
|
||||||
describe 'attestation' do
|
describe 'attestation' do
|
||||||
context 'when a dossier has an attestation' do
|
context 'when a dossier has an attestation' do
|
||||||
let(:fake_pdf) { double(read: 'pdf content') }
|
let(:fake_pdf) { double(read: 'pdf content') }
|
||||||
let!(:procedure) { create(:procedure, gestionnaires: [gestionnaire]) }
|
|
||||||
let!(:dossier) { create(:dossier, attestation: Attestation.new, procedure: procedure) }
|
let!(:dossier) { create(:dossier, attestation: Attestation.new, procedure: procedure) }
|
||||||
|
|
||||||
it 'returns the attestation pdf' do
|
it 'returns the attestation pdf' do
|
||||||
|
@ -23,4 +25,22 @@ describe NewGestionnaire::DossiersController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'follow' do
|
||||||
|
before { patch :follow, params: { procedure_id: procedure.id, dossier_id: dossier.id } }
|
||||||
|
|
||||||
|
it { expect(gestionnaire.followed_dossiers).to match([dossier]) }
|
||||||
|
it { expect(response).to redirect_to(procedures_url) }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'unfollow' do
|
||||||
|
before do
|
||||||
|
gestionnaire.followed_dossiers << dossier
|
||||||
|
patch :unfollow, params: { procedure_id: procedure.id, dossier_id: dossier.id }
|
||||||
|
gestionnaire.reload
|
||||||
|
end
|
||||||
|
|
||||||
|
it { expect(gestionnaire.followed_dossiers).to match([]) }
|
||||||
|
it { expect(response).to redirect_to(procedures_url) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue