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