require 'rails_helper'
RSpec.feature "Templates::Editing", type: :feature do
let!(:funder) { create(:org, :funder) }
let!(:org) { create(:org, :school, :organisation) }
let!(:template) { create(:template, :published, :publicly_visible, org: funder) }
let!(:user) { create(:user, org: org) }
before do
create(:template, :default, :published)
create_list(:phase, 1, template: template).each do |phase|
create_list(:section, 1, phase: phase).each do |section|
create_list(:question, 1, section: section)
end
end
user.perms << create(:perm, :modify_templates)
user.perms << create(:perm, :add_organisations)
sign_in user
visit org_admin_templates_path
end
scenario "Admin edits a Template's existing question", :js do
click_link "Customisable Templates"
within("#template_#{template.id}") do
click_button "Actions"
end
click_link "Customise"
within("#phase_2") do
click_link "Customise phase"
end
click_link template.sections.first.title
within("#edit_question_2") do
textarea_id = page.body.match(/question\_annotations\_attributes\_annotation\_(\d+)\_text/)
tinymce_fill_in(:"question_annotations_attributes_annotation_#{$1}_text", "Foo bar")
click_button 'Save'
end
# Make sure annotation has been updated
expect(Question.find(2).annotations.first.text).to eql("Foo bar")
# Make sure blank records are not created for empty annotation form
expect(Question.find(2).annotations.count).to eql(1)
expect(page).not_to have_errors
end
end