52 lines
1.9 KiB
Ruby
52 lines
1.9 KiB
Ruby
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
|