require 'spec_helper'

describe UsersController, type: :controller do

  describe '#current_user_dossier' do
    let(:user) { create(:user) }
    let(:dossier) { create(:dossier, user: user)}

    before do
      sign_in user
    end

    context 'when no dossier_id is filled' do
      it { expect{ subject.current_user_dossier }.to raise_error }
    end

    context 'when dossier_id is given as a param' do
      context 'when dossier id is valid' do
        it 'returns current user dossier' do
          expect(subject.current_user_dossier dossier.id).to eq(dossier)
        end
      end

      context 'when dossier id is incorrect' do
        it { expect{ subject.current_user_dossier 1 }.to raise_error }
      end
    end

    context 'when no params[] is given' do
      context 'when dossier id is valid' do
        before do
          subject.params[:dossier_id] = dossier.id
        end

        it 'returns current user dossier' do
          expect(subject.current_user_dossier).to eq(dossier)
        end
      end

      context 'when dossier id is incorrect' do
        it { expect{ subject.current_user_dossier }.to raise_error }
      end

      context 'when dossier_id is given as a param' do
        before do
          subject.params[:dossier_id] = 1
        end

        it 'returns dossier with the id on params past' do
          expect(subject.current_user_dossier dossier.id).to eq(dossier)
        end
      end
    end
  end
end