From dbaebaed227fc0910cfab70a10ca8b79956a11ee Mon Sep 17 00:00:00 2001 From: Graeme Porteous Date: Fri, 27 Oct 2023 17:01:28 +0100 Subject: [PATCH] fixup! Update request base calculated status --- app/models/info_request/state/calculator.rb | 7 +++--- app/models/info_request/state/transitions.rb | 4 ++-- .../info_request/state/calculator_spec.rb | 22 ++++++++++++------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/models/info_request/state/calculator.rb b/app/models/info_request/state/calculator.rb index f64d995bd08..cc1bdc92a92 100644 --- a/app/models/info_request/state/calculator.rb +++ b/app/models/info_request/state/calculator.rb @@ -93,10 +93,9 @@ def transitions(opts = {}) other: {} } end - opts.merge!( - in_internal_review: state == 'internal_review', - internal_review_requested: @info_request.internal_review_requested? - ) + opts[:in_internal_review] = state == 'internal_review' + opts[:internal_review_requested] = + @info_request.internal_review_requested? build_transitions_hash(opts) end diff --git a/app/models/info_request/state/transitions.rb b/app/models/info_request/state/transitions.rb index b884222b843..a1eb1782d00 100644 --- a/app/models/info_request/state/transitions.rb +++ b/app/models/info_request/state/transitions.rb @@ -87,7 +87,7 @@ def self.owner_gone_postal_transition_label(_opts = {}) def self.owner_internal_review_transition_label(opts = {}) if opts.fetch(:in_internal_review, false) || - opts.fetch(:internal_review_requested, false) + opts.fetch(:internal_review_requested, false) _("I'm still waiting for the internal review") else _("I'm waiting for an internal review response") @@ -141,7 +141,7 @@ def self.other_user_gone_postal_transition_label(_opts = {}) def self.other_user_internal_review_transition_label(opts = {}) if opts.fetch(:in_internal_review, false) || - opts.fetch(:internal_review_requested, false) + opts.fetch(:internal_review_requested, false) _("Still awaiting an internal review") else # To match what would happen if this method didn't exist, because diff --git a/spec/models/info_request/state/calculator_spec.rb b/spec/models/info_request/state/calculator_spec.rb index 8c14dec394d..4a43fe6ad13 100644 --- a/spec/models/info_request/state/calculator_spec.rb +++ b/spec/models/info_request/state/calculator_spec.rb @@ -253,36 +253,42 @@ end context "and the user is the owner" do - it "returns only two pending states" do + it "returns only all pending states with internal_review first" do transitions = calculator.transitions( is_owning_user: true, - user_asked_to_update_status: false) - expected = %w[internal_review waiting_response waiting_clarification gone_postal] + user_asked_to_update_status: false + ) + expected = %w[internal_review waiting_response waiting_clarification + gone_postal] expect(transitions[:pending].keys).to eq(expected) end it "returns a different label for the internal_review status" do transitions = calculator.transitions( is_owning_user: true, - user_asked_to_update_status: false) + user_asked_to_update_status: false + ) expected = "I'm still waiting for the internal review" expect(transitions[:pending]["internal_review"]).to eq expected end end context "and the user is some other user" do - it "returns only two pending states" do + it "returns only all pending states with internal_review first" do transitions = calculator.transitions( is_owning_user: false, - user_asked_to_update_status: false) - expected = %w[internal_review waiting_response waiting_clarification gone_postal] + user_asked_to_update_status: false + ) + expected = %w[internal_review waiting_response waiting_clarification + gone_postal] expect(transitions[:pending].keys).to eq(expected) end it "returns a different label for the internal_review status" do transitions = calculator.transitions( is_owning_user: false, - user_asked_to_update_status: false) + user_asked_to_update_status: false + ) expected = "Still awaiting an internal review" expect(transitions[:pending]["internal_review"]).to eq expected end