require "rails_helper" RSpec.describe CheckYourErrorsController, type: :request do let(:page) { Capybara::Node::Simple.new(response.body) } let(:user) { create(:user, :data_coordinator) } let(:lettings_log) { create(:lettings_log, :duplicate, assigned_to: user) } describe "check your errors page" do context "when user is not signed in" do it "redirects to sign in page" do get "/lettings-logs/#{lettings_log.id}/check-your-errors" expect(response).to redirect_to("/account/sign-in") end end context "when the user is from different organisation" do let(:other_user) { create(:user) } before do sign_in other_user end it "renders page not found" do get "/lettings-logs/#{lettings_log.id}/check-your-errors" expect(response).to have_http_status(:not_found) end end context "when user is signed in" do context "with multiple error fields and answered questions" do before do sign_in user get "/lettings-logs/#{lettings_log.id}/check-your-errors?related_question_ids[]=startdate&related_question_ids[]=needstype&original_page_id=tenancy_start_date" end it "displays correct clear links" do expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?original_page_id=tenancy_start_date&question_id=startdate&related_question_ids%5B%5D=startdate&related_question_ids%5B%5D=needstype") expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?original_page_id=tenancy_start_date&question_id=needstype&related_question_ids%5B%5D=startdate&related_question_ids%5B%5D=needstype") expect(page).to have_link("Clear all", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-all-answers?original_page_id=tenancy_start_date&related_question_ids%5B%5D=startdate&related_question_ids%5B%5D=needstype") end end context "with multiple error fields and unanswered questions" do before do lettings_log.update!(needstype: nil, startdate: nil) sign_in user get "/lettings-logs/#{lettings_log.id}/check-your-errors?related_question_ids[]=startdate&related_question_ids[]=needstype&original_page_id=tenancy_start_date" end it "displays correct clear links" do expect(page).to have_link("Answer", href: "/lettings-logs/#{lettings_log.id}/needs-type?original_page_id=tenancy_start_date&referrer=check_your_errors&related_question_ids%5B%5D=startdate&related_question_ids%5B%5D=needstype") expect(page).to have_link("Answer", href: "/lettings-logs/#{lettings_log.id}/tenancy-start-date?original_page_id=tenancy_start_date&referrer=check_your_errors&related_question_ids%5B%5D=startdate&related_question_ids%5B%5D=needstype") end end end end describe "confirm clear answer page" do end describe "confirm clear all answers page" do end describe "clear answer" do end describe "clear all answers" do end end