demarches-normaliennes/spec/helpers/procedure_helper_spec.rb

55 lines
1.9 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
RSpec.describe ProcedureHelper, type: :helper do
describe '#procedure_auto_archive_datetime' do
let(:auto_archive_date) { Time.zone.local(2020, 8, 2, 12, 00) }
let(:procedure) { build(:procedure, auto_archive_on: auto_archive_date) }
subject { procedure_auto_archive_datetime(procedure) }
it "displays the day before the auto archive date (to account for the '23h59' ending time)" do
expect(subject).to have_text("1 août 2020 à 23 h 59 (heure de Paris)")
end
end
describe 'can_send_groupe_message?' do
let(:procedure) { create(:procedure, groupe_instructeurs: [gi1, gi2]) }
let(:current_instructeur) { create(:instructeur) }
subject { can_send_groupe_message?(procedure) }
context 'when current_instructeur is in all procedure.groupes_instructeur' do
let(:gi1) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
let(:gi2) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
it { is_expected.to be_truthy }
end
context 'when current_instructeur is in all procedure.groupes_instructeur' do
let(:instructeur2) { create(:instructeur) }
let(:gi1) { create(:groupe_instructeur, instructeurs: [current_instructeur]) }
let(:gi2) { create(:groupe_instructeur, instructeurs: [instructeur2]) }
it { is_expected.to be_falsy }
end
end
describe '#estimated_fill_duration_minutes' do
subject { estimated_fill_duration_minutes(procedure.reload) }
context 'with champs' do
let(:procedure) { create(:procedure, types_de_champ_public: [{ type: :yes_no }, { type: :piece_justificative }]) }
it 'rounds up the duration to the minute' do
expect(subject).to eq(3)
end
end
context 'without champs' do
let(:procedure) { create(:procedure) }
it 'never displays zero minutes' do
expect(subject).to eq(1)
end
end
end
end