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: "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: "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: "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 end

7
app/models/merge_request.rb

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

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

@ -18,7 +18,10 @@
<% end %> <% end %>
<%= f.hidden_field :page, value: "existing_absorbing_organisation" %> <%= 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 %> <% end %>
</div> </div>
</div> </div>

10
spec/models/merge_request_spec.rb

@ -55,13 +55,13 @@ RSpec.describe MergeRequest, type: :model do
end end
it "returns the correct status for a ready to merge request" do 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:) create(:merge_request_organisation, merge_request:)
expect(merge_request.status).to eq MergeRequest::STATUS[:ready_to_merge] expect(merge_request.status).to eq MergeRequest::STATUS[:ready_to_merge]
end end
it "returns the merge issues if dsa is not signed for absorbing organisation" do 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:) create(:merge_request_organisation, merge_request:)
expect(merge_request.status).to eq MergeRequest::STATUS[:merge_issues] expect(merge_request.status).to eq MergeRequest::STATUS[:merge_issues]
end end
@ -83,6 +83,12 @@ RSpec.describe MergeRequest, type: :model do
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete] expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete]
end 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 it "returns processing if merge is processing" do
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), processing: true) merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), processing: true)
create(:merge_request_organisation, merge_request:) create(:merge_request_organisation, merge_request:)

Loading…
Cancel
Save