7 changed files with 113 additions and 8 deletions
			
			
		@ -0,0 +1,23 @@
					 | 
				
			||||
class CheckYourErrorsController < ApplicationController | 
				
			||||
  include DuplicateLogsHelper | 
				
			||||
 | 
				
			||||
  before_action :authenticate_user! | 
				
			||||
  before_action :find_resource_by_named_id | 
				
			||||
 | 
				
			||||
  def index | 
				
			||||
    return render_not_found unless @log | 
				
			||||
 | 
				
			||||
    related_question_ids = params[:related_question_ids] | 
				
			||||
    @questions = @log.form.questions.select { |q| related_question_ids.include?(q.id.to_s) } | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
private | 
				
			||||
 | 
				
			||||
  def find_resource_by_named_id | 
				
			||||
    @log = if params[:sales_log_id].present? | 
				
			||||
             current_user.sales_logs.visible.find_by(id: params[:sales_log_id]) | 
				
			||||
           else | 
				
			||||
             current_user.lettings_logs.visible.find_by(id: params[:lettings_log_id]) | 
				
			||||
           end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,16 @@
					 | 
				
			||||
<div class="govuk-grid-row"> | 
				
			||||
  <div class="govuk-grid-column-three-quarters-from-desktop"> | 
				
			||||
    <h1 class="govuk-heading-m govuk-!-margin-bottom-6"> | 
				
			||||
      <span class="govuk-grid-column-two-thirds"> | 
				
			||||
        Make sure these answers are correct:  | 
				
			||||
      </span> | 
				
			||||
      <span class="govuk-body govuk-!-text-align-right govuk-grid-column-one-third"> | 
				
			||||
        <%= govuk_link_to "Clear all", lettings_log_confirm_clear_all_answers_path(@log, related_question_ids: request.query_parameters["related_question_ids"] , original_question_id: request.query_parameters["original_question_id"])%> | 
				
			||||
      </span> | 
				
			||||
    </h1> | 
				
			||||
 | 
				
			||||
    <%= render CheckAnswersSummaryListCardComponent.new(questions: @questions, log: @log, user: current_user, correcting_hard_validation: true) %> | 
				
			||||
 | 
				
			||||
    <%= govuk_button_link_to "Confirm and continue", "/" %> | 
				
			||||
  </div> | 
				
			||||
</div> | 
				
			||||
@ -0,0 +1,56 @@
					 | 
				
			||||
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" do | 
				
			||||
        before do | 
				
			||||
          sign_in user | 
				
			||||
          get "/lettings-logs/#{lettings_log.id}/check-your-errors?related_question_ids[]=startdate&related_question_ids[]=needstype&original_question_id=startdate" | 
				
			||||
        end | 
				
			||||
 | 
				
			||||
        it "displays correct clear links" do | 
				
			||||
          expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?original_question_id=startdate&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_question_id=startdate&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_question_id=startdate&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 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue