demarches-normaliennes/spec/helpers/procedure_helper_spec.rb
2024-08-22 09:26:48 +02:00

54 lines
1.9 KiB
Ruby
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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