Due to its markdown editor, the admin draft version page requires JS to correctly render the draft version form.
142 lines
4.0 KiB
Ruby
142 lines
4.0 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'Admin legislation draft versions' do
|
|
|
|
it_behaves_like "translatable",
|
|
"legislation_draft_version",
|
|
"edit_admin_legislation_process_draft_version_path",
|
|
%w[title changelog]
|
|
|
|
background do
|
|
admin = create(:administrator)
|
|
login_as(admin.user)
|
|
end
|
|
|
|
it_behaves_like "translatable",
|
|
"legislation_draft_version",
|
|
"edit_admin_legislation_process_draft_version_path",
|
|
%w[title changelog]
|
|
|
|
context "Feature flag" do
|
|
|
|
scenario 'Disabled with a feature flag' do
|
|
Setting['feature.legislation'] = nil
|
|
process = create(:legislation_process)
|
|
expect{ visit admin_legislation_process_draft_versions_path(process) }.to raise_exception(FeatureFlags::FeatureDisabled)
|
|
end
|
|
|
|
end
|
|
|
|
context "Index" do
|
|
|
|
scenario 'Displaying legislation process draft versions' do
|
|
process = create(:legislation_process, title: 'An example legislation process')
|
|
draft_version = create(:legislation_draft_version, process: process, title: 'Version 1')
|
|
|
|
visit admin_legislation_processes_path(filter: 'all')
|
|
|
|
click_link 'An example legislation process'
|
|
click_link 'Drafting'
|
|
click_link 'Version 1'
|
|
|
|
expect(page).to have_content(draft_version.title)
|
|
expect(page).to have_content(draft_version.changelog)
|
|
end
|
|
end
|
|
|
|
context 'Create' do
|
|
scenario 'Valid legislation draft version' do
|
|
process = create(:legislation_process, title: 'An example legislation process')
|
|
|
|
visit admin_root_path
|
|
|
|
within('#side_menu') do
|
|
click_link "Collaborative Legislation"
|
|
end
|
|
|
|
click_link "All"
|
|
|
|
expect(page).to have_content 'An example legislation process'
|
|
|
|
click_link 'An example legislation process'
|
|
click_link 'Drafting'
|
|
|
|
click_link 'Create version'
|
|
|
|
fill_in 'legislation_draft_version_title_en', with: 'Version 3'
|
|
fill_in 'legislation_draft_version_changelog_en', with: 'Version 3 changes'
|
|
fill_in 'legislation_draft_version_body_en', with: 'Version 3 body'
|
|
|
|
within('.end') do
|
|
click_button 'Create version'
|
|
end
|
|
|
|
expect(page).to have_content 'An example legislation process'
|
|
expect(page).to have_content 'Version 3'
|
|
end
|
|
end
|
|
|
|
context 'Update' do
|
|
scenario 'Valid legislation draft version', :js do
|
|
process = create(:legislation_process, title: 'An example legislation process')
|
|
draft_version = create(:legislation_draft_version, title: 'Version 1', process: process)
|
|
|
|
visit admin_root_path
|
|
|
|
within('#side_menu') do
|
|
click_link "Collaborative Legislation"
|
|
end
|
|
|
|
click_link "All"
|
|
|
|
expect(page).to have_content 'An example legislation process'
|
|
|
|
click_link 'An example legislation process'
|
|
click_link 'Drafting'
|
|
|
|
click_link 'Version 1'
|
|
|
|
fill_in 'legislation_draft_version_title_en', with: 'Version 1b'
|
|
|
|
click_link 'Launch text editor'
|
|
|
|
fill_in 'legislation_draft_version_body_en', with: '# Version 1 body\r\n\r\nParagraph\r\n\r\n>Quote'
|
|
|
|
within('.fullscreen') do
|
|
click_link 'Close text editor'
|
|
end
|
|
|
|
click_button 'Save changes'
|
|
|
|
expect(page).to have_content 'Version 1b'
|
|
end
|
|
end
|
|
|
|
context "Special translation behaviour" do
|
|
|
|
let!(:draft_version) { create(:legislation_draft_version) }
|
|
|
|
scenario 'Add body translation through markup editor', :js do
|
|
edit_path = edit_admin_legislation_process_draft_version_path(draft_version.process, draft_version)
|
|
|
|
visit edit_path
|
|
|
|
select "Français", from: "translation_locale"
|
|
|
|
click_link 'Launch text editor'
|
|
|
|
fill_in 'legislation_draft_version_body_fr', with: 'Texte en Français'
|
|
|
|
click_link 'Close text editor'
|
|
click_button "Save changes"
|
|
|
|
visit edit_path
|
|
|
|
click_link "Français"
|
|
click_link 'Launch text editor'
|
|
|
|
expect(page).to have_field('legislation_draft_version_body_fr', with: 'Texte en Français')
|
|
end
|
|
end
|
|
end
|