From cd4f5180a69543eec742618c4b9d713b8901810f Mon Sep 17 00:00:00 2001 From: CatalinVoineag <11318084+CatalinVoineag@users.noreply.github.com> Date: Wed, 1 May 2024 10:03:45 +0100 Subject: [PATCH] Fix back link when creating a claim When creating a claim you can end up on the edit page of a claim, or mentors list. These edit pages were programmed to always go to the check page, so when a user would click them it would try to redirect them to the check page. This commit fixes this with a reviewed boolean field which is set to true when the user lands on the check page. We use this boolean to know where to redirect the user, back to the check page or through the steps ending on the index page. Once a user lands on the check page, the back buttons should always redirect him to the check page. --- .../claims/schools/claims_controller.rb | 3 +- .../support/schools/claims_controller.rb | 11 +- app/forms/claims/claim/mentors_form.rb | 8 ++ app/forms/claims/claim/provider_form.rb | 18 ++- .../claims/support/claim/mentors_form.rb | 8 ++ .../claims/support/claim/provider_form.rb | 17 +++ app/models/claims/claim.rb | 1 + app/services/claims/claim/review.rb | 15 +++ app/views/claims/schools/claims/edit.html.erb | 2 +- .../schools/claims/mentors/edit.html.erb | 2 +- .../support/schools/claims/edit.html.erb | 2 +- .../schools/claims/mentors/edit.html.erb | 2 +- config/analytics.yml | 1 + ...501065503_add_reviewed_by_user_to_claim.rb | 5 + db/schema.rb | 3 +- spec/factories/claims.rb | 1 + spec/forms/claims/claim/mentors_form_spec.rb | 23 ++++ spec/forms/claims/claim/provider_form_spec.rb | 46 +++++++ .../claims/support/claim/mentors_form_spec.rb | 23 ++++ .../support/claim/provider_form_spec.rb | 117 ++++++++++++++++++ spec/models/claims/claim_spec.rb | 1 + spec/services/claims/claim/review_spec.rb | 18 +++ .../schools/claims/create_claim_spec.rb | 34 +++++ .../schools/claims/create_claim_spec.rb | 36 ++++++ .../schools/claims/edit_draft_claim_spec.rb | 1 + 25 files changed, 386 insertions(+), 12 deletions(-) create mode 100644 app/forms/claims/support/claim/provider_form.rb create mode 100644 app/services/claims/claim/review.rb create mode 100644 db/migrate/20240501065503_add_reviewed_by_user_to_claim.rb create mode 100644 spec/forms/claims/support/claim/provider_form_spec.rb create mode 100644 spec/services/claims/claim/review_spec.rb diff --git a/app/controllers/claims/schools/claims_controller.rb b/app/controllers/claims/schools/claims_controller.rb index 91da15682..a5c17000b 100644 --- a/app/controllers/claims/schools/claims_controller.rb +++ b/app/controllers/claims/schools/claims_controller.rb @@ -25,6 +25,7 @@ def show; end def check last_mentor_training = @claim.mentor_trainings.order_by_mentor_full_name.last + Claims::Claim::Review.call(claim: @claim) @back_path = edit_claims_school_claim_mentor_training_path( @school, @@ -38,7 +39,7 @@ def edit; end def update if claim_provider_form.save - redirect_to check_claims_school_claim_path(@school, claim_provider_form.claim) + redirect_to claim_provider_form.update_success_path else render :edit end diff --git a/app/controllers/claims/support/schools/claims_controller.rb b/app/controllers/claims/support/schools/claims_controller.rb index 305525e2e..60c423dc3 100644 --- a/app/controllers/claims/support/schools/claims_controller.rb +++ b/app/controllers/claims/support/schools/claims_controller.rb @@ -31,6 +31,7 @@ def create def check last_mentor_training = @claim.mentor_trainings.order_by_mentor_full_name.last + Claims::Claim::Review.call(claim: @claim) @back_path = edit_claims_support_school_claim_mentor_training_path( @school, @@ -47,7 +48,7 @@ def edit; end def update if claim_provider_form.save - redirect_to check_claims_support_school_claim_path(@school, claim_provider_form.claim) + redirect_to claim_provider_form.update_success_path else render :edit end @@ -67,7 +68,7 @@ def rejected; end private def claim_params - params.require(:claims_claim_provider_form) + params.require(:claims_support_claim_provider_form) .permit(:id, :provider_id) .merge(default_params) end @@ -86,10 +87,10 @@ def set_claim def claim_provider_form @claim_provider_form ||= - if params[:claims_claim_provider_form].present? - Claims::Claim::ProviderForm.new(claim_params) + if params[:claims_support_claim_provider_form].present? + Claims::Support::Claim::ProviderForm.new(claim_params) else - Claims::Claim::ProviderForm.new(default_params.merge(id: claim_id)) + Claims::Support::Claim::ProviderForm.new(default_params.merge(id: claim_id)) end end diff --git a/app/forms/claims/claim/mentors_form.rb b/app/forms/claims/claim/mentors_form.rb index 232b20794..2f5d71c39 100644 --- a/app/forms/claims/claim/mentors_form.rb +++ b/app/forms/claims/claim/mentors_form.rb @@ -17,6 +17,14 @@ def persist claim.save! end + def edit_back_path + if claim.reviewed? + check_claims_school_claim_path(claim.school, claim) + else + edit_claims_school_claim_path(claim.school, claim) + end + end + def update_success_path if claim.mentor_trainings.without_hours.any? edit_claims_school_claim_mentor_training_path( diff --git a/app/forms/claims/claim/provider_form.rb b/app/forms/claims/claim/provider_form.rb index 1184da315..4a60681bf 100644 --- a/app/forms/claims/claim/provider_form.rb +++ b/app/forms/claims/claim/provider_form.rb @@ -10,7 +10,7 @@ def initialize(attributes = {}) end def persist - return if claim.provider_id == provider_id + return true if claim.provider_id == provider_id ActiveRecord::Base.transaction do claim.provider_id = provider_id @@ -21,6 +21,22 @@ def persist end end + def edit_back_path + if claim.reviewed? + check_claims_school_claim_path(claim.school, claim) + else + claims_school_claims_path(claim.school) + end + end + + def update_success_path + if claim.reviewed? + check_claims_school_claim_path(claim.school, claim) + else + edit_claims_school_claim_mentors_path(claim.school, claim) + end + end + def claim @claim ||= school.claims.find_or_initialize_by(id:) end diff --git a/app/forms/claims/support/claim/mentors_form.rb b/app/forms/claims/support/claim/mentors_form.rb index 44fa8a05b..6c31ee8de 100644 --- a/app/forms/claims/support/claim/mentors_form.rb +++ b/app/forms/claims/support/claim/mentors_form.rb @@ -1,4 +1,12 @@ class Claims::Support::Claim::MentorsForm < Claims::Claim::MentorsForm + def edit_back_path + if claim.reviewed? + check_claims_support_school_claim_path(claim.school, claim) + else + edit_claims_support_school_claim_path(claim.school, claim) + end + end + def update_success_path if claim.mentor_trainings.without_hours.any? edit_claims_support_school_claim_mentor_training_path( diff --git a/app/forms/claims/support/claim/provider_form.rb b/app/forms/claims/support/claim/provider_form.rb new file mode 100644 index 000000000..0beebb1b5 --- /dev/null +++ b/app/forms/claims/support/claim/provider_form.rb @@ -0,0 +1,17 @@ +class Claims::Support::Claim::ProviderForm < Claims::Claim::ProviderForm + def edit_back_path + if claim.reviewed? + check_claims_support_school_claim_path(claim.school, claim) + else + claims_support_school_claims_path(claim.school) + end + end + + def update_success_path + if claim.reviewed? + check_claims_support_school_claim_path(claim.school, claim) + else + edit_claims_support_school_claim_mentors_path(claim.school, claim) + end + end +end diff --git a/app/models/claims/claim.rb b/app/models/claims/claim.rb index db9bb4a3a..763a4b557 100644 --- a/app/models/claims/claim.rb +++ b/app/models/claims/claim.rb @@ -14,6 +14,7 @@ # provider_id :uuid # school_id :uuid not null # submitted_by_id :uuid +# reviewed :boolean default(FALSE) # # Indexes # diff --git a/app/services/claims/claim/review.rb b/app/services/claims/claim/review.rb new file mode 100644 index 000000000..5a18e90bb --- /dev/null +++ b/app/services/claims/claim/review.rb @@ -0,0 +1,15 @@ +class Claims::Claim::Review + include ServicePattern + + def initialize(claim:) + @claim = claim + end + + def call + claim.update!(reviewed: true) + end + + private + + attr_reader :claim +end diff --git a/app/views/claims/schools/claims/edit.html.erb b/app/views/claims/schools/claims/edit.html.erb index c917f9e98..da3753e55 100644 --- a/app/views/claims/schools/claims/edit.html.erb +++ b/app/views/claims/schools/claims/edit.html.erb @@ -2,7 +2,7 @@ <% render "claims/schools/primary_navigation", school: @school, current: :claims %> <%= content_for(:before_content) do %> - <%= govuk_back_link(href: check_claims_school_claim_path(@school, claim_provider_form.claim)) %> + <%= govuk_back_link(href: claim_provider_form.edit_back_path) %> <% end %>
diff --git a/app/views/claims/schools/claims/mentors/edit.html.erb b/app/views/claims/schools/claims/mentors/edit.html.erb index a038e9459..6571c15c0 100644 --- a/app/views/claims/schools/claims/mentors/edit.html.erb +++ b/app/views/claims/schools/claims/mentors/edit.html.erb @@ -2,7 +2,7 @@ <% render "claims/schools/primary_navigation", school: @school, current: :claims %> <%= content_for(:before_content) do %> - <%= govuk_back_link(href: check_claims_school_claim_path(@school, claim_mentors_form.claim)) %> + <%= govuk_back_link(href: claim_mentors_form.edit_back_path) %> <% end %>
diff --git a/app/views/claims/support/schools/claims/edit.html.erb b/app/views/claims/support/schools/claims/edit.html.erb index 59e7f0c35..6ebfa3583 100644 --- a/app/views/claims/support/schools/claims/edit.html.erb +++ b/app/views/claims/support/schools/claims/edit.html.erb @@ -2,7 +2,7 @@ <% render "claims/support/primary_navigation", current: :organisations %> <%= content_for(:before_content) do %> - <%= govuk_back_link(href: check_claims_support_school_claim_path(@school, claim_provider_form.claim)) %> + <%= govuk_back_link(href: claim_provider_form.edit_back_path) %> <% end %>
diff --git a/app/views/claims/support/schools/claims/mentors/edit.html.erb b/app/views/claims/support/schools/claims/mentors/edit.html.erb index 8b031d262..4ea462576 100644 --- a/app/views/claims/support/schools/claims/mentors/edit.html.erb +++ b/app/views/claims/support/schools/claims/mentors/edit.html.erb @@ -2,7 +2,7 @@ <% render "claims/support/primary_navigation", current: :organisations %> <%= content_for(:before_content) do %> - <%= govuk_back_link(href: check_claims_support_school_claim_path(@school, claim_mentors_form.claim)) %> + <%= govuk_back_link(href: claim_mentors_form.edit_back_path) %> <% end %>
diff --git a/config/analytics.yml b/config/analytics.yml index 028a13953..f3cbaea5e 100644 --- a/config/analytics.yml +++ b/config/analytics.yml @@ -88,6 +88,7 @@ shared: - status - submitted_by_type - submitted_by_id + - reviewed :schools: - id - urn diff --git a/db/migrate/20240501065503_add_reviewed_by_user_to_claim.rb b/db/migrate/20240501065503_add_reviewed_by_user_to_claim.rb new file mode 100644 index 000000000..5af19a42b --- /dev/null +++ b/db/migrate/20240501065503_add_reviewed_by_user_to_claim.rb @@ -0,0 +1,5 @@ +class AddReviewedByUserToClaim < ActiveRecord::Migration[7.1] + def change + add_column(:claims, :reviewed, :boolean, default: false) + end +end diff --git a/db/schema.rb b/db/schema.rb index d702c1ec4..5d652a0fa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_04_29_133246) do +ActiveRecord::Schema[7.1].define(version: 2024_05_01_065503) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" enable_extension "plpgsql" @@ -58,6 +58,7 @@ t.enum "status", enum_type: "claim_status" t.string "submitted_by_type" t.uuid "submitted_by_id" + t.boolean "reviewed", default: false t.index ["created_by_type", "created_by_id"], name: "index_claims_on_created_by" t.index ["provider_id"], name: "index_claims_on_provider_id" t.index ["reference"], name: "index_claims_on_reference", unique: true diff --git a/spec/factories/claims.rb b/spec/factories/claims.rb index e1bdb2e23..bba38120c 100644 --- a/spec/factories/claims.rb +++ b/spec/factories/claims.rb @@ -14,6 +14,7 @@ # provider_id :uuid # school_id :uuid not null # submitted_by_id :uuid +# reviewed :boolean default(FALSE) # # Indexes # diff --git a/spec/forms/claims/claim/mentors_form_spec.rb b/spec/forms/claims/claim/mentors_form_spec.rb index 5b6c27065..39bc42ab3 100644 --- a/spec/forms/claims/claim/mentors_form_spec.rb +++ b/spec/forms/claims/claim/mentors_form_spec.rb @@ -58,4 +58,27 @@ end end end + + describe "#edit_back_path" do + context "when reviewed is false" do + it "returns the path to the mentor training hours form" do + form = described_class.new(claim:) + + expect(form.edit_back_path).to eq( + "/schools/#{claim.school.id}/claims/#{claim.id}/edit", + ) + end + end + + context "when reviewed is true" do + it "returns the path to the claim check page" do + claim_reviewed = create(:claim, reviewed: true) + form = described_class.new(claim: claim_reviewed) + + expect(form.update_success_path).to eq( + "/schools/#{claim_reviewed.school.id}/claims/#{claim_reviewed.id}/check", + ) + end + end + end end diff --git a/spec/forms/claims/claim/provider_form_spec.rb b/spec/forms/claims/claim/provider_form_spec.rb index 494a52193..8bbe3de7c 100644 --- a/spec/forms/claims/claim/provider_form_spec.rb +++ b/spec/forms/claims/claim/provider_form_spec.rb @@ -68,4 +68,50 @@ end end end + + describe "#edit_back_path" do + context "when reviewed is false" do + it "returns the edit claim path" do + form = described_class.new(id: existing_claim.id, school:) + + expect(form.edit_back_path).to eq( + "/schools/#{school.id}/claims", + ) + end + end + + context "when reviewed is true" do + it "returns the check claim path" do + claim = create(:claim, school:, reviewed: true) + form = described_class.new(id: claim.id, school:) + + expect(form.edit_back_path).to eq( + "/schools/#{school.id}/claims/#{claim.id}/check", + ) + end + end + end + + describe "#update_success_path" do + context "when reviewed is false" do + it "returns the edit claim mentor training path" do + form = described_class.new(id: existing_claim.id, school:) + + expect(form.update_success_path).to eq( + "/schools/#{school.id}/claims/#{existing_claim.id}/mentors/edit", + ) + end + end + + context "when reviewed is true" do + it "returns the check claim path" do + claim = create(:claim, school:, reviewed: true) + form = described_class.new(id: claim.id, school:) + + expect(form.update_success_path).to eq( + "/schools/#{school.id}/claims/#{claim.id}/check", + ) + end + end + end end diff --git a/spec/forms/claims/support/claim/mentors_form_spec.rb b/spec/forms/claims/support/claim/mentors_form_spec.rb index 14507b70a..d42d8eaf7 100644 --- a/spec/forms/claims/support/claim/mentors_form_spec.rb +++ b/spec/forms/claims/support/claim/mentors_form_spec.rb @@ -58,4 +58,27 @@ end end end + + describe "#edit_back_path" do + context "when reviewed is nil" do + it "returns the path to the mentor training hours form" do + form = described_class.new(claim:) + + expect(form.edit_back_path).to eq( + "/support/schools/#{claim.school.id}/claims/#{claim.id}/edit", + ) + end + end + + context "when reviewed is true" do + it "returns the path to the claim check page" do + claim_reviewed = create(:claim, reviewed: true) + form = described_class.new(claim: claim_reviewed) + + expect(form.update_success_path).to eq( + "/support/schools/#{claim_reviewed.school.id}/claims/#{claim_reviewed.id}/check", + ) + end + end + end end diff --git a/spec/forms/claims/support/claim/provider_form_spec.rb b/spec/forms/claims/support/claim/provider_form_spec.rb new file mode 100644 index 000000000..16f4cc14a --- /dev/null +++ b/spec/forms/claims/support/claim/provider_form_spec.rb @@ -0,0 +1,117 @@ +require "rails_helper" + +describe Claims::Support::Claim::ProviderForm, type: :model do + let(:school) { create(:claims_school) } + let(:existing_claim) { create(:claim, school:) } + + describe "validations" do + context "when provider is not set" do + it "returns invalid" do + form = described_class.new(school:) + expect(form.valid?).to eq(false) + expect(form.errors.messages[:provider_id]).to include("Select a provider") + end + end + end + + describe "#claim" do + it "returns an instance of a Claims::Claim" do + form = described_class.new(school:) + expect(form.claim).to be_a Claims::Claim + end + + context "when claim already exists" do + it "returns the existing claim" do + form = described_class.new(id: existing_claim.id, school:) + expect(form.claim).to eq(existing_claim) + end + end + end + + describe "#save" do + let(:provider) { create(:claims_provider, :best_practice_network) } + let(:current_user) { create(:claims_user) } + + before do + existing_claim.mentor_trainings << create(:mentor_training, provider:) + end + + context "when claim doesn't exist" do + it "creates an internal draft claim with a provider" do + form = described_class.new(provider_id: provider.id, school:, current_user:) + + expect { form.save! }.to change { form.claim.provider }.to provider + + expect(form.claim.internal_draft?).to be(true) + expect(form.claim.created_by).to eq(current_user) + end + end + + context "when claim does exist" do + it "updates the claim with the new provider" do + form = described_class.new(id: existing_claim.id, provider_id: provider.id, school:, current_user:) + + expect { form.save! }.to change { existing_claim.reload.provider }.to provider + + expect(existing_claim.internal_draft?).to be(true) + expect(existing_claim.created_by).not_to eq(current_user) + expect(existing_claim.mentor_trainings.pluck(:provider_id)).to all(eq(provider.id)) + end + + context "when selecting the same provider" do + it "doesn't update anything" do + form = described_class.new(id: existing_claim.id, provider_id: existing_claim.provider.id, school:, current_user:) + + expect { form.save! }.to not_change { existing_claim.reload.provider } + .and(not_change { existing_claim.reload.mentor_trainings.pluck(:provider_id) }) + end + end + end + end + + describe "#edit_back_path" do + context "when reviewed is false" do + it "returns the edit claim path" do + form = described_class.new(id: existing_claim.id, school:) + + expect(form.edit_back_path).to eq( + "/support/schools/#{school.id}/claims", + ) + end + end + + context "when reviewed is true" do + it "returns the check claim path" do + claim = create(:claim, school:, reviewed: true) + form = described_class.new(id: claim.id, school:) + + expect(form.edit_back_path).to eq( + "/support/schools/#{school.id}/claims/#{claim.id}/check", + ) + end + end + end + + describe "#update_success_path" do + context "when reviewed is false" do + it "returns the edit claim mentor training path" do + form = described_class.new(id: existing_claim.id, school:) + + expect(form.update_success_path).to eq( + "/support/schools/#{school.id}/claims/#{existing_claim.id}/mentors/edit", + ) + end + end + + context "when reviewed is true" do + it "returns the check claim path" do + claim = create(:claim, school:, reviewed: true) + form = described_class.new(id: claim.id, school:) + + expect(form.update_success_path).to eq( + "/support/schools/#{school.id}/claims/#{claim.id}/check", + ) + end + end + end +end diff --git a/spec/models/claims/claim_spec.rb b/spec/models/claims/claim_spec.rb index c3fbcda67..437f66ba1 100644 --- a/spec/models/claims/claim_spec.rb +++ b/spec/models/claims/claim_spec.rb @@ -14,6 +14,7 @@ # provider_id :uuid # school_id :uuid not null # submitted_by_id :uuid +# reviewed :boolean default(FALSE) # # Indexes # diff --git a/spec/services/claims/claim/review_spec.rb b/spec/services/claims/claim/review_spec.rb new file mode 100644 index 000000000..b83e37cdd --- /dev/null +++ b/spec/services/claims/claim/review_spec.rb @@ -0,0 +1,18 @@ +require "rails_helper" + +describe Claims::Claim::Review do + subject(:service) { described_class.call(claim:) } + + let!(:claim) { create(:claim, reference: nil, status: :internal_draft, school:) } + let(:school) { create(:claims_school, urn: "1234") } + + it_behaves_like "a service object" do + let(:params) { { claim: } } + end + + describe "#call" do + it "sets the reviewed attribute to true" do + expect { service }.to change(claim, :reviewed).from(false).to(true) + end + end +end diff --git a/spec/system/claims/schools/claims/create_claim_spec.rb b/spec/system/claims/schools/claims/create_claim_spec.rb index 159b1ad7f..79bcfb241 100644 --- a/spec/system/claims/schools/claims/create_claim_spec.rb +++ b/spec/system/claims/schools/claims/create_claim_spec.rb @@ -41,6 +41,26 @@ then_i_get_a_claim_reference_and_see_next_steps(Claims::Claim.submitted.first) end + scenario "Anne attempts to create a claim but backs off before the check page" do + when_i_click("Add claim") + when_i_choose_a_provider(bpn) + when_i_click("Continue") + when_i_select_all_mentors + when_i_click("Continue") + then_i_expect_to_be_able_to_add_training_hours_to_mentor(mentor1) + when_i_add_training_hours("20 hours") + when_i_click("Continue") + then_i_expect_to_be_able_to_add_training_hours_to_mentor(mentor2) + when_i_click("Back") + then_i_expect_the_training_hours_for(20, mentor1) + when_i_click("Back") + then_i_expect_the_mentors_to_be_checked([mentor1, mentor2]) + when_i_click("Back") + then_i_expect_the_provider_to_be_checked(bpn) + when_i_click("Back") + then_i_expect_to_be_on_the_claims_index_page + end + scenario "Anne creates a claim with mentor training hours over the maximum limit per provider" do when_i_click("Add claim") when_i_choose_a_provider(bpn) @@ -280,4 +300,18 @@ def then_i_should_see_the_message(message) def then_i_should_land_on_the_check_page expect(page).to have_content "Check your answers" end + + def then_i_expect_the_mentors_to_be_checked(mentors) + mentors.each do |mentor| + has_checked_field?("#claims-claim-mentor-ids-#{mentor.id}-field") + end + end + + def then_i_expect_the_provider_to_be_checked(provider) + has_checked_field?("#claims-claim-provider-form-provider-id-#{provider.id}-field") + end + + def then_i_expect_to_be_on_the_claims_index_page + expect(page).to have_current_path(claims_school_claims_path(school)) + end end diff --git a/spec/system/claims/support/schools/claims/create_claim_spec.rb b/spec/system/claims/support/schools/claims/create_claim_spec.rb index f56eac94c..23ea24529 100644 --- a/spec/system/claims/support/schools/claims/create_claim_spec.rb +++ b/spec/system/claims/support/schools/claims/create_claim_spec.rb @@ -43,6 +43,28 @@ then_i_am_redirectd_to_index_page(Claims::Claim.draft.first) end + scenario "Colin attempts to create a claim but backs off before the check page" do + when_i_click(school.name) + when_i_click_on_claims + when_i_click("Add claim") + when_i_choose_a_provider(bpn) + when_i_click("Continue") + when_i_select_all_mentors + when_i_click("Continue") + then_i_expect_to_be_able_to_add_training_hours_to_mentor(mentor1) + when_i_add_training_hours("20 hours") + when_i_click("Continue") + then_i_expect_to_be_able_to_add_training_hours_to_mentor(mentor2) + when_i_click("Back") + then_i_expect_the_training_hours_for(20, mentor1) + when_i_click("Back") + then_i_expect_the_mentors_to_be_checked([mentor1, mentor2]) + when_i_click("Back") + then_i_expect_the_provider_to_be_checked(bpn) + when_i_click("Back") + then_i_expect_to_be_on_the_claims_index_page + end + scenario "Colin creates a claim with mentor training hours over the maximum limit per provider" do when_i_click(school.name) when_i_click_on_claims @@ -249,4 +271,18 @@ def then_i_should_see_the_message(message) def then_i_should_land_on_the_check_page expect(page).to have_content "Check your answers" end + + def then_i_expect_the_mentors_to_be_checked(mentors) + mentors.each do |mentor| + has_checked_field?("#claims-claim-mentor-ids-#{mentor.id}-field") + end + end + + def then_i_expect_the_provider_to_be_checked(provider) + has_checked_field?("#claims-claim-provider-form-provider-id-#{provider.id}-field") + end + + def then_i_expect_to_be_on_the_claims_index_page + expect(page).to have_current_path(claims_support_school_claims_path(school)) + end end diff --git a/spec/system/claims/support/schools/claims/edit_draft_claim_spec.rb b/spec/system/claims/support/schools/claims/edit_draft_claim_spec.rb index 439d02e30..46efc59b8 100644 --- a/spec/system/claims/support/schools/claims/edit_draft_claim_spec.rb +++ b/spec/system/claims/support/schools/claims/edit_draft_claim_spec.rb @@ -87,6 +87,7 @@ def then_i_edit_the_provider first("a", text: "Change").click page.choose(niot_provider.name) click_on("Continue") + click_on("Continue") expect(page).to have_content("Accredited providerNIoT: National Institute of Teaching, founded by the School-Led Development TrustChange") end