|
|
|
@ -33,12 +33,15 @@ RSpec.describe "Form Conditional Questions" do
|
|
|
|
|
|
|
|
|
|
before do |
|
|
|
|
sign_in user |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "with a page where some questions are only conditionally shown, depending on how you answer the first question" do |
|
|
|
|
before do |
|
|
|
|
allow(sales_log.form).to receive(:new_logs_end_date).and_return(Time.zone.today + 1.day) |
|
|
|
|
allow(lettings_log.form).to receive(:new_logs_end_date).and_return(Time.zone.today + 1.day) |
|
|
|
|
allow(FormHandler.instance).to receive(:current_lettings_form).and_return(fake_2021_2022_form) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "with a page where some questions are only conditionally shown, depending on how you answer the first question" do |
|
|
|
|
it "initially hides conditional questions" do |
|
|
|
|
visit("/lettings-logs/#{id}/armed-forces") |
|
|
|
|
expect(page).not_to have_selector("#armed_forces_injured_div") |
|
|
|
@ -57,6 +60,12 @@ RSpec.describe "Form Conditional Questions" do
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when a conditional question has a saved answer", js: true do |
|
|
|
|
before do |
|
|
|
|
allow(sales_log.form).to receive(:new_logs_end_date).and_return(Time.zone.today + 1.day) |
|
|
|
|
allow(lettings_log.form).to receive(:new_logs_end_date).and_return(Time.zone.today + 1.day) |
|
|
|
|
allow(FormHandler.instance).to receive(:current_lettings_form).and_return(fake_2021_2022_form) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "is displayed correctly" do |
|
|
|
|
lettings_log.update!(postcode_known: 1, postcode_full: "NW1 6RT") |
|
|
|
|
visit("/lettings-logs/#{id}/property-postcode") |
|
|
|
@ -73,4 +82,33 @@ RSpec.describe "Form Conditional Questions" do
|
|
|
|
|
expect(page).to have_field("sales-log-age1-field", with: "") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when a conditional question has an error" do |
|
|
|
|
let(:lettings_log) do |
|
|
|
|
FactoryBot.create( |
|
|
|
|
:lettings_log, |
|
|
|
|
:completed, |
|
|
|
|
created_by: user, |
|
|
|
|
) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
before do |
|
|
|
|
FormHandler.instance.use_real_forms! |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "shows conditional questions if the required answer is selected and hides it again when a different answer option is selected", js: true do |
|
|
|
|
visit("/lettings-logs/#{id}/lead-tenant-age") |
|
|
|
|
choose("lettings-log-age1-known-0-field", allow_label_click: true) |
|
|
|
|
fill_in("lettings-log-age1-field", with: "200") |
|
|
|
|
click_button("Save and continue") |
|
|
|
|
expect(page).not_to have_field("lettings-log-age1-field") |
|
|
|
|
expect(page).to have_field("lettings-log-age1-field-error") |
|
|
|
|
choose("lettings-log-age1-known-1-field", allow_label_click: true) |
|
|
|
|
expect(page).not_to have_field("lettings-log-age1-field") |
|
|
|
|
expect(page).not_to have_field("lettings-log-age1-field-error") |
|
|
|
|
choose("lettings-log-age1-known-0-field", allow_label_click: true) |
|
|
|
|
expect(page).not_to have_field("lettings-log-age1-field") |
|
|
|
|
expect(page).to have_field("lettings-log-age1-field-error", with: "") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|