specs: migrate from features to system specs
System specs have been available since Rails 5.1, and are better integrated with the Rails framework. - Rename `spec/features` to `spec/system` - Rename `feature do` to `describe do` - Configure Capybara for system specs Steps mostly taken from https://medium.com/table-xi/a-quick-guide-to-rails-system-tests-in-rspec-b6e9e8a8b5f6
This commit is contained in:
parent
df9fa258ae
commit
9fd38cae5e
42 changed files with 58 additions and 53 deletions
100
spec/system/help_spec.rb
Normal file
100
spec/system/help_spec.rb
Normal file
|
@ -0,0 +1,100 @@
|
|||
describe '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 'on pages related to a procedure' do
|
||||
let(:procedure) { create(:procedure, :published, :with_service) }
|
||||
|
||||
scenario 'a Help menu provides administration contacts and a link to the FAQ' do
|
||||
visit commencer_path(path: procedure.path)
|
||||
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_menu
|
||||
end
|
||||
|
||||
within('.help-dropdown') do
|
||||
expect(page).to have_content(procedure.service.email)
|
||||
expect(page).to have_content(procedure.service.telephone)
|
||||
expect(page).to have_link(nil, href: FAQ_URL)
|
||||
end
|
||||
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 instructeur' do
|
||||
let(:instructeur) { create(:instructeur) }
|
||||
|
||||
before do
|
||||
login_as instructeur.user, scope: :user
|
||||
end
|
||||
|
||||
scenario 'a Help menu is visible on signed-in pages' do
|
||||
visit instructeur_procedures_path
|
||||
within('.new-header') do
|
||||
expect(page).to have_help_menu
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def have_help_button
|
||||
have_link('Aide', href: FAQ_URL)
|
||||
end
|
||||
|
||||
def have_help_menu
|
||||
have_selector('.help-dropdown')
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue