2024-04-29 00:17:15 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2023-03-06 15:51:08 +01:00
|
|
|
describe 'layouts/_header', type: :view do
|
2019-08-08 17:36:08 +02:00
|
|
|
let(:current_instructeur) { nil }
|
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
before do
|
2019-08-08 17:44:33 +02:00
|
|
|
allow(view).to receive(:multiple_devise_profile_connect?).and_return(false)
|
2019-08-08 17:36:08 +02:00
|
|
|
allow(view).to receive(:instructeur_signed_in?).and_return((profile == :instructeur))
|
|
|
|
allow(view).to receive(:current_instructeur).and_return(current_instructeur)
|
2023-10-31 10:50:28 +01:00
|
|
|
allow(view).to receive(:administrateur_signed_in?).and_return(false)
|
|
|
|
allow(view).to receive(:expert_signed_in?).and_return(false)
|
2021-08-24 11:39:15 +02:00
|
|
|
allow(view).to receive(:localization_enabled?).and_return(false)
|
2019-08-08 17:36:08 +02:00
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
if user
|
2018-06-25 11:26:37 +02:00
|
|
|
sign_in user
|
2018-03-08 13:54:26 +01:00
|
|
|
allow(controller).to receive(:nav_bar_profile).and_return(profile)
|
|
|
|
end
|
2019-03-28 11:14:01 +01:00
|
|
|
end
|
2018-03-08 13:54:26 +01:00
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
subject { render }
|
2018-03-08 13:54:26 +01:00
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
context 'when rendering without context' do
|
|
|
|
let(:user) { nil }
|
|
|
|
let(:profile) { nil }
|
2018-03-08 13:54:26 +01:00
|
|
|
|
2022-08-18 17:06:58 +02:00
|
|
|
it { is_expected.to have_css(".fr-header__logo") }
|
2022-09-21 11:06:19 +02:00
|
|
|
it { is_expected.to_not have_css(".account-btn") }
|
2019-03-13 16:48:38 +01:00
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
it 'displays the Help link' do
|
2023-01-09 16:58:19 +01:00
|
|
|
expect(subject).to have_link('Aide', href: I18n.t("links.common.faq.url"))
|
2018-03-08 13:54:26 +01:00
|
|
|
end
|
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
context 'when on a procedure page' do
|
|
|
|
let(:procedure) { create(:procedure, :with_service) }
|
2018-03-08 13:54:26 +01:00
|
|
|
|
2019-03-28 11:14:01 +01:00
|
|
|
before do
|
|
|
|
allow(controller).to receive(:procedure_for_help).and_return(procedure)
|
|
|
|
end
|
2018-06-25 11:26:37 +02:00
|
|
|
|
2019-03-19 14:48:26 +01:00
|
|
|
it 'displays the Help dropdown menu' do
|
2019-03-28 11:14:01 +01:00
|
|
|
expect(subject).to have_css(".help-dropdown")
|
2018-06-25 11:26:37 +02:00
|
|
|
end
|
2018-03-08 13:54:26 +01:00
|
|
|
end
|
|
|
|
end
|
2019-03-28 11:14:01 +01:00
|
|
|
|
|
|
|
context 'when rendering for user' do
|
|
|
|
let(:user) { create(:user) }
|
|
|
|
let(:profile) { :user }
|
|
|
|
|
2022-08-18 17:06:58 +02:00
|
|
|
it { is_expected.to have_css(".fr-header__logo") }
|
2023-01-03 17:06:55 +01:00
|
|
|
it { is_expected.to have_link("Mes dossiers", href: dossiers_path) }
|
2022-09-21 11:06:19 +02:00
|
|
|
it { is_expected.to have_selector(:button, user.email, class: "account-btn") }
|
2019-03-28 11:14:01 +01:00
|
|
|
|
|
|
|
it 'displays the Help button' do
|
2023-01-09 16:58:19 +01:00
|
|
|
expect(subject).to have_link("Aide", href: I18n.t("links.common.faq.url"))
|
2019-03-28 11:14:01 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-08-06 11:02:54 +02:00
|
|
|
context 'when rendering for instructeur' do
|
2019-08-07 11:15:16 +02:00
|
|
|
let(:instructeur) { create(:instructeur) }
|
|
|
|
let(:user) { instructeur.user }
|
2019-08-06 11:02:54 +02:00
|
|
|
let(:profile) { :instructeur }
|
2019-08-07 11:15:16 +02:00
|
|
|
let(:current_instructeur) { instructeur }
|
2023-10-31 10:50:28 +01:00
|
|
|
let!(:release_note) { create(:release_note, categories: ['instructeur']) }
|
2019-03-28 11:14:01 +01:00
|
|
|
|
2022-08-18 17:06:58 +02:00
|
|
|
it { is_expected.to have_css(".fr-header__logo") }
|
2022-09-21 11:06:19 +02:00
|
|
|
it { is_expected.to have_selector(:button, user.email, class: "account-btn") }
|
2019-03-28 11:14:01 +01:00
|
|
|
|
|
|
|
it 'displays the Help dropdown menu' do
|
|
|
|
expect(subject).to have_css(".help-dropdown")
|
|
|
|
end
|
|
|
|
end
|
2018-03-08 13:54:26 +01:00
|
|
|
end
|