describe 'instructeur_mailer/send_notifications.html.haml', type: :view do
  let(:instructeur) { create(:instructeur) }

  before do
    assign(:data, data)

    render
  end

  context 'when there is one dossier in contruction' do
    let(:data) do
      [
        {
          procedure_libelle: 'une superbe démarche',
          procedure_id: 213,
          nb_en_construction: 1,
          nb_en_instruction: 0,
          nb_accepted: 0,
          nb_notification: 0
        }
      ]
    end

    it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
    it { expect(rendered).to have_text('une superbe démarche') }
    it { expect(rendered).to have_text('1 dossier en construction') }
    it { expect(rendered).not_to have_text('notification') }
  end

  context 'when there is one declarated dossier in instruction' do
    let(:data) do
      [
        {
          procedure_libelle: 'une superbe démarche',
          procedure_id: 213,
          nb_en_construction: 0,
          nb_en_instruction: 1,
          nb_accepted: 0,
          nb_notification: 0
        }
      ]
    end

    it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
    it { expect(rendered).to have_text('une superbe démarche') }
    it { expect(rendered).to have_text('1 dossier') }
    it { expect(rendered).not_to have_text('notification') }
    it { expect(rendered).not_to have_text('construction') }
    it { expect(rendered).not_to have_text('accepte') }
  end

  context 'when there is one declarated dossier in accepte' do
    let(:data) do
      [
        {
          procedure_libelle: 'une superbe démarche',
          procedure_id: 213,
          nb_en_construction: 0,
          nb_en_instruction: 0,
          nb_accepted: 1,
          nb_notification: 0
        }
      ]
    end

    it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
    it { expect(rendered).to have_text('une superbe démarche') }
    it { expect(rendered).to have_text('1 dossier') }
    it { expect(rendered).not_to have_text('notification') }
    it { expect(rendered).not_to have_text('construction') }
    it { expect(rendered).not_to have_text('instruction') }
  end

  context 'when there is one notification' do
    let(:data) do
      [
        {
          procedure_libelle: 'une superbe démarche',
          procedure_id: 213,
          nb_en_construction: 0,
          nb_en_instruction: 0,
          nb_accepted: 0,
          nb_notification: 1
        }
      ]
    end

    it { expect(rendered).not_to have_text('en construction') }
    it { expect(rendered).to have_text('1 notification') }
  end
end
