diff --git a/app/models/journeys/navigator.rb b/app/models/journeys/navigator.rb index 85829657c..23e1041bf 100644 --- a/app/models/journeys/navigator.rb +++ b/app/models/journeys/navigator.rb @@ -9,24 +9,6 @@ def initialize(current_slug:, slug_sequence:, params:, session:) @session = session end - def slug_to_load - return "ineligible" if eligibility_checker.ineligible? - - slug_sequence.slugs.each do |slug| - form_class = journey.form_class_for_slug(slug:) - form = form_class.new( - journey:, - journey_session:, - params: {}, - session: - ) - - if form.invalid? - return slug - end - end - end - def previous_slug last_valid_slug = nil @@ -61,7 +43,7 @@ def next_slug form = form_class.new( journey:, journey_session:, - params: ActionController::Parameters.new, + params:, session: ) form.skip_tree_walking_validation! @@ -90,12 +72,6 @@ def next_slug end end - def previous? - end - - def next? - end - private def journey diff --git a/spec/models/journeys/navigator_spec.rb b/spec/models/journeys/navigator_spec.rb new file mode 100644 index 000000000..5016b0ddb --- /dev/null +++ b/spec/models/journeys/navigator_spec.rb @@ -0,0 +1,85 @@ +require "rails_helper" + +RSpec.describe Journeys::Navigator do + subject { described_class.new(current_slug:, slug_sequence:, params:, session:) } + + let(:current_slug) { "teaching-responsibilities" } + let(:slug_sequence) { Journeys::FurtherEducationPayments::SlugSequence.new(journey_session) } + let(:params) { ActionController::Parameters.new } + let(:session) { {} } + let(:journey_session) do + create(:further_education_payments_session, answers: answers) + end + + describe "#next_slug" do + context "when should be first slug" do + let(:answers) do + build( + :further_education_payments_answers + ) + end + + it "returns first slug" do + expect(subject.next_slug).to eql("teaching-responsibilities") + end + end + + context "when should be second slug" do + let(:current_slug) { "teaching-responsibilities" } + let(:params) do + ActionController::Parameters.new(claim: { + teaching_responsibilities: "true" + }) + end + + let(:answers) do + build( + :further_education_payments_answers, + ) + end + + it "returns second slug" do + expect(subject.next_slug).to eql("further-education-provision-search") + end + end + + context "when should be third slug" do + let(:current_slug) { "further-education-provision-search" } + let(:params) do + ActionController::Parameters.new(claim: { + provision_search: "ply" + }) + end + + let(:answers) do + build( + :further_education_payments_answers, + teaching_responsibilities: true + ) + end + + before do + create(:school, name: "Plymouth") + end + + it "returns third slug" do + expect(subject.next_slug).to eql("select-provision") + end + end + + context "when should be ineligible" do + let(:current_slug) { "teaching-responsibilities" } + + let(:answers) do + build( + :further_education_payments_answers, + teaching_responsibilities: false + ) + end + + it "returns ineligible" do + expect(subject.next_slug).to eql("ineligible") + end + end + end +end