Add by_latest scope in Avis

This commit is contained in:
Mathieu Magnin 2017-05-02 13:54:57 +02:00 committed by Simon Lehericey
parent 7c662aa7b2
commit d07943a55d
3 changed files with 14 additions and 1 deletions

View file

@ -4,6 +4,7 @@ class Avis < ApplicationRecord
scope :with_answer, -> { where.not(answer: nil) }
scope :without_answer, -> { where(answer: nil) }
scope :by_latest, -> { order(updated_at: :desc) }
def email_to_display
gestionnaire.try(:email) || email

View file

@ -9,7 +9,7 @@
AVIS EXTERNES
.body
.display-block-on-print
- dossier_facade.dossier.avis.order(updated_at: :desc).each do |avis|
- dossier_facade.dossier.avis.by_latest.each do |avis|
- if avis.answer
.panel.panel-success
.panel-heading

View file

@ -17,4 +17,16 @@ RSpec.describe Avis, type: :model do
it{ is_expected.to eq(avis.gestionnaire.email) }
end
end
describe '.by_latest' do
context 'with 3 avis' do
let!(:avis){ create(:avis) }
let!(:avis2){ create(:avis, updated_at: 4.hours.ago) }
let!(:avis3){ create(:avis, updated_at: 3.hours.ago) }
subject { Avis.by_latest }
it { expect(subject).to eq([avis, avis3, avis2])}
end
end
end