9 changed files with 135 additions and 90 deletions
@ -1,11 +1,15 @@ |
|||||||
<div class="govuk-grid-row"> |
<div class="govuk-grid-row"> |
||||||
<div class="govuk-grid-column-three-quarters-from-desktop"> |
<div class="govuk-grid-column-three-quarters-from-desktop"> |
||||||
|
<%= form_with model: @log, url: request.original_url, method: "post", local: true do |f| %> |
||||||
|
<%= f.govuk_error_summary %> |
||||||
|
<% end %> |
||||||
|
|
||||||
<h1 class="govuk-heading-m govuk-!-margin-bottom-6"> |
<h1 class="govuk-heading-m govuk-!-margin-bottom-6"> |
||||||
<span class="govuk-grid-column-two-thirds"> |
<span class="govuk-grid-column-two-thirds"> |
||||||
Make sure these answers are correct: |
Make sure these answers are correct: |
||||||
</span> |
</span> |
||||||
<span class="govuk-body govuk-!-text-align-right govuk-grid-column-one-third"> |
<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_page_id: request.query_parameters["original_page_id"]) %> |
<%= govuk_link_to "Clear all", lettings_log_confirm_clear_all_answers_path(@log) %> |
||||||
</span> |
</span> |
||||||
</h1> |
</h1> |
||||||
|
|
@ -0,0 +1,108 @@ |
|||||||
|
require "rails_helper" |
||||||
|
|
||||||
|
RSpec.describe CheckErrorsController, 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 errors page" do |
||||||
|
context "when user is not signed in" do |
||||||
|
it "redirects to sign in page" do |
||||||
|
post "/lettings-logs/#{lettings_log.id}/net-income", params: {} |
||||||
|
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 |
||||||
|
post "/lettings-logs/#{lettings_log.id}/net-income", params: {} |
||||||
|
expect(response).to have_http_status(:not_found) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
context "when user is signed in" do |
||||||
|
let(:params) do |
||||||
|
{ |
||||||
|
id: lettings_log.id, |
||||||
|
lettings_log: { |
||||||
|
page: "income_amount", |
||||||
|
earnings: "100000", |
||||||
|
incfreq: "1", |
||||||
|
}, |
||||||
|
check_errors: "", |
||||||
|
} |
||||||
|
end |
||||||
|
|
||||||
|
before do |
||||||
|
lettings_log.update(needstype: 1, declaration: 1, ecstat1: 10, hhmemb: 2, net_income_known: 0, incfreq: 1, earnings: 1000) |
||||||
|
end |
||||||
|
|
||||||
|
context "with multiple error fields and answered questions" do |
||||||
|
before do |
||||||
|
sign_in user |
||||||
|
post "/lettings-logs/#{lettings_log.id}/income-amount", params: params |
||||||
|
end |
||||||
|
|
||||||
|
it "displays correct clear links" do |
||||||
|
expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?question_id=hhmemb") |
||||||
|
expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?question_id=ecstat1") |
||||||
|
expect(page).to have_link("Clear", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?question_id=earnings") |
||||||
|
expect(page).to have_link("Clear all", href: "/lettings-logs/#{lettings_log.id}/confirm-clear-all-answers") |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "confirm clear answer page" do |
||||||
|
context "when user is not signed in" do |
||||||
|
it "redirects to sign in page" do |
||||||
|
get "/lettings-logs/#{lettings_log.id}/confirm-clear-answer?original_page_id=income_amount&question_id=hhmemb&related_question_ids%5B%5D=hhmemb&related_question_ids%5B%5D=ecstat1&related_question_ids%5B%5D=earnings", params: {} |
||||||
|
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}/confirm-clear-answer?original_page_id=income_amount&question_id=hhmemb&related_question_ids%5B%5D=hhmemb&related_question_ids%5B%5D=ecstat1&related_question_ids%5B%5D=earnings", params: {} |
||||||
|
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}/confirm-clear-answer?original_page_id=income_amount&question_id=hhmemb&related_question_ids%5B%5D=hhmemb&related_question_ids%5B%5D=ecstat1&related_question_ids%5B%5D=earnings", params: {} |
||||||
|
end |
||||||
|
|
||||||
|
it "displays correct clear links" do |
||||||
|
expect(page).to have_content("Are you sure you want to clear Number of household members answer?") |
||||||
|
expect(page).to have_content("This action is permanent") |
||||||
|
expect(page).to have_button("Cancel", href: "/lettings-logs/#{lettings_log.id}/income-amount") |
||||||
|
expect(page).to have_button("Confirm and continue", href: "/lettings-logs/#{lettings_log.id}/clear-answer?original_page_id=income_amount&question_id=hhmemb&related_question_ids%5B%5D=hhmemb&related_question_ids%5B%5D=ecstat1&related_question_ids%5B%5D=earnings") |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "confirm clear all answers page" do |
||||||
|
end |
||||||
|
|
||||||
|
describe "clear answer" do |
||||||
|
end |
||||||
|
|
||||||
|
describe "clear all answers" do |
||||||
|
end |
||||||
|
end |
@ -1,69 +0,0 @@ |
|||||||
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 |
|
Loading…
Reference in new issue