Browse Source

Update status calculation and add new question to check answers

pull/2600/head
Kat 2 years ago committed by kosiakkatrina
parent
commit
1af4ec9bc0
  1. 1
      app/helpers/merge_requests_helper.rb
  2. 7
      app/models/merge_request.rb
  3. 5
      app/views/merge_requests/existing_absorbing_organisation.html.erb
  4. 10
      spec/models/merge_request_spec.rb

1
app/helpers/merge_requests_helper.rb

@ -19,6 +19,7 @@ module MergeRequestsHelper
{ label: "Absorbing organisation", value: display_value_or_placeholder(merge_request.absorbing_organisation_name), action: merge_request_action(merge_request, "absorbing_organisation") },
{ label: "Merging organisations", value: merge_request.merge_request_organisations.any? ? merge_request.merge_request_organisations.map(&:merging_organisation_name).join("<br>").html_safe : display_value_or_placeholder(nil), action: merge_request_action(merge_request, "merging_organisations") },
{ label: "Merge date", value: display_value_or_placeholder(merge_request.merge_date), action: merge_request_action(merge_request, "merge_date") },
{ label: "Absorbing organisation already active?", value: display_value_or_placeholder(merge_request.existing_absorbing_organisation_label), action: merge_request_action(merge_request, "existing_absorbing_organisation") },
]
end

7
app/models/merge_request.rb

@ -47,6 +47,7 @@ class MergeRequest < ApplicationRecord
def required_questions_answered?
absorbing_organisation_id.present? &&
merge_date.present? &&
existing_absorbing_organisation.present? &&
merging_organisations.count.positive? &&
errors.empty?
end
@ -98,4 +99,10 @@ class MergeRequest < ApplicationRecord
([absorbing_organisation] + merging_organisations).reject(&:has_visible_schemes?)
end
def existing_absorbing_organisation_label
return if existing_absorbing_organisation.nil?
existing_absorbing_organisation ? "Yes" : "No"
end
end

5
app/views/merge_requests/existing_absorbing_organisation.html.erb

@ -18,7 +18,10 @@
<% end %>
<%= f.hidden_field :page, value: "existing_absorbing_organisation" %>
<%= f.govuk_submit submit_merge_request_button_text(request.query_parameters["referrer"]) %>
<div class="govuk-button-group">
<%= f.govuk_submit submit_merge_request_button_text(request.query_parameters["referrer"]) %>
<%= govuk_link_to(secondary_merge_request_link_text(request.query_parameters["referrer"]), merge_request_path(@merge_request)) %>
</div>
<% end %>
</div>
</div>

10
spec/models/merge_request_spec.rb

@ -55,13 +55,13 @@ RSpec.describe MergeRequest, type: :model do
end
it "returns the correct status for a ready to merge request" do
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), merge_date: Time.zone.today)
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), merge_date: Time.zone.today, existing_absorbing_organisation: true)
create(:merge_request_organisation, merge_request:)
expect(merge_request.status).to eq MergeRequest::STATUS[:ready_to_merge]
end
it "returns the merge issues if dsa is not signed for absorbing organisation" do
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation, with_dsa: false), merge_date: Time.zone.today)
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation, with_dsa: false), merge_date: Time.zone.today, existing_absorbing_organisation: true)
create(:merge_request_organisation, merge_request:)
expect(merge_request.status).to eq MergeRequest::STATUS[:merge_issues]
end
@ -83,6 +83,12 @@ RSpec.describe MergeRequest, type: :model do
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete]
end
it "returns the incomplete if existing absorbing organisation is missing" do
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation, with_dsa: false), merge_date: Time.zone.today)
create(:merge_request_organisation, merge_request:)
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete]
end
it "returns processing if merge is processing" do
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), processing: true)
create(:merge_request_organisation, merge_request:)

Loading…
Cancel
Save