require 'spec_helper' describe BackofficeController, type: :controller do describe 'GET #index' do context 'when gestionnaire is not connected' do before do get :index end it { expect(response).to redirect_to :new_gestionnaire_session } end context 'when gestionnaire is connected' do before do sign_in create(:gestionnaire) get :index end it { expect(response).to redirect_to :backoffice_dossiers } end end describe 'GET #invitations' do context 'when gestionnaire is not invited on any dossiers' do render_views before do sign_in create(:gestionnaire) get :invitations end it { expect(response.status).to eq(200) } it { expect(response.body).to include("INVITATIONS") } it { expect(response.body).to include("0 avis à rendre") } it { expect(response.body).to include("0 avis rendus") } end context 'when gestionnaire is invited on a dossier' do let(:dossier){ create(:dossier) } let(:gestionnaire){ create(:gestionnaire) } let!(:avis){ create(:avis, dossier: dossier, gestionnaire: gestionnaire) } render_views before do sign_in gestionnaire get :invitations end it { expect(response.status).to eq(200) } it { expect(response.body).to include("1 avis à rendre") } it { expect(response.body).to include("0 avis rendus") } it { expect(response.body).to include(dossier.procedure.libelle) } context 'when avis is already sent' do let!(:avis){ create(:avis, dossier: dossier, gestionnaire: gestionnaire, answer: "Voici mon avis.") } it { expect(response.body).to include("0 avis à rendre") } it { expect(response.body).to include("1 avis rendu") } it { expect(response.body).to include(dossier.procedure.libelle) } end context 'when dossier linked to avis is hidden' do before do dossier.update_attributes(hidden_at: Time.now) get :invitations end it { expect(response.status).to eq(200) } it { expect(response.body).to include("0 avis à rendre") } it { expect(response.body).to include("0 avis rendu") } end end end end