help: add a custom help dropdown in dossier context
This commit is contained in:
parent
ce9c5da6e1
commit
549b17f75e
8 changed files with 219 additions and 3 deletions
|
@ -952,4 +952,30 @@ describe NewUser::DossiersController, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#dossier_for_help" do
|
||||
before do
|
||||
sign_in(user)
|
||||
controller.params[:dossier_id] = dossier_id.to_s
|
||||
end
|
||||
|
||||
subject { controller.dossier_for_help }
|
||||
|
||||
context 'when the id matches an existing dossier' do
|
||||
let(:dossier) { create(:dossier) }
|
||||
let(:dossier_id) { dossier.id }
|
||||
|
||||
it { is_expected.to eq dossier }
|
||||
end
|
||||
|
||||
context 'when the id doesn’t match an existing dossier' do
|
||||
let(:dossier_id) { 9999999 }
|
||||
it { is_expected.to be nil }
|
||||
end
|
||||
|
||||
context 'when the id is empty' do
|
||||
let(:dossier_id) { nil }
|
||||
it { is_expected.to be_falsy }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
84
spec/features/help_spec.rb
Normal file
84
spec/features/help_spec.rb
Normal file
|
@ -0,0 +1,84 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Getting help:' do
|
||||
scenario 'a Help button is visible on public pages' do
|
||||
visit '/'
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_button
|
||||
end
|
||||
end
|
||||
|
||||
context 'as a signed-in user' do
|
||||
let(:user) { create(:user) }
|
||||
let(:procedure) { create(:procedure, :with_service) }
|
||||
|
||||
before do
|
||||
login_as user, scope: :user
|
||||
end
|
||||
|
||||
scenario 'a Help button is visible on signed-in pages' do
|
||||
visit dossiers_path
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_button
|
||||
end
|
||||
end
|
||||
|
||||
context 'on a page related to a draft dossier' do
|
||||
let(:dossier) { create(:dossier, user: user, procedure: procedure) }
|
||||
|
||||
scenario 'a Help menu provides administration contacts and a link to the FAQ' do
|
||||
visit dossier_path(dossier)
|
||||
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_menu
|
||||
end
|
||||
|
||||
within('.help-dropdown') do
|
||||
expect(page).to have_content(dossier.procedure.service.email)
|
||||
expect(page).to have_content(dossier.procedure.service.telephone)
|
||||
expect(page).to have_link(nil, href: FAQ_URL)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'on a page related to a submitted dossier' do
|
||||
let(:dossier) { create(:dossier, :en_construction, user: user, procedure: procedure) }
|
||||
|
||||
scenario 'a Help menu provides links to the Messagerie and to the FAQ' do
|
||||
visit dossier_path(dossier)
|
||||
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_menu
|
||||
end
|
||||
|
||||
within('.help-dropdown') do
|
||||
expect(page).to have_link(nil, href: messagerie_dossier_path(dossier))
|
||||
expect(page).to have_link(nil, href: FAQ_URL)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'as a gestionnaire' do
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
|
||||
before do
|
||||
login_as gestionnaire, scope: :gestionnaire
|
||||
end
|
||||
|
||||
scenario 'a Help button is visible on signed-in pages' do
|
||||
visit gestionnaire_procedures_path
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_button
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def have_help_button
|
||||
have_link('Aide', href: FAQ_URL)
|
||||
end
|
||||
|
||||
def have_help_menu
|
||||
have_selector('.help-dropdown')
|
||||
end
|
||||
end
|
|
@ -54,7 +54,7 @@ feature 'The gestionnaire part' do
|
|||
|
||||
click_on 'En instruction'
|
||||
|
||||
within('.dropdown-items') do
|
||||
within('.state-button') do
|
||||
click_on 'Accepter'
|
||||
end
|
||||
|
||||
|
|
|
@ -16,6 +16,10 @@ describe 'layouts/_new_header.html.haml', type: :view do
|
|||
|
||||
it { is_expected.to have_css("a.header-logo[href=\"#{dossiers_path}\"]") }
|
||||
it { is_expected.to have_link("Dossiers", href: dossiers_path) }
|
||||
|
||||
it 'displays the Help button' do
|
||||
expect(subject).to have_link("Aide", href: FAQ_URL)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when rendering for gestionnaire' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue