Browse Source

Update scheme outcomes view link

pull/2604/head
Kat 2 years ago
parent
commit
252395cb79
  1. 1
      app/controllers/merge_requests_controller.rb
  2. 2
      app/helpers/merge_requests_helper.rb
  3. 10
      app/models/merge_request.rb
  4. 1
      config/routes.rb
  5. 23
      spec/requests/merge_requests_controller_spec.rb

1
app/controllers/merge_requests_controller.rb

@ -9,6 +9,7 @@ class MergeRequestsController < ApplicationController
def helpdesk_ticket; end
def merge_start_confirmation; end
def user_outcomes; end
def scheme_outcomes; end
def create
ActiveRecord::Base.transaction do

2
app/helpers/merge_requests_helper.rb

@ -25,7 +25,7 @@ module MergeRequestsHelper
def merge_outcomes(merge_request)
[
{ label: "Total users after merge", value: display_value_or_placeholder(merge_request.total_users_label), action: merge_outcome_action(merge_request, "user_outcomes") },
{ label: "Total schemes after merge", value: display_value_or_placeholder(merge_request.total_schemes), action: { text: "View", href: "#", visually_hidden_text: "total schemes after merge" } },
{ label: "Total schemes after merge", value: display_value_or_placeholder(merge_request.total_schemes_label), action: merge_outcome_action(merge_request, "scheme_outcomes") },
{ label: "Total logs after merge", value: merge_request.total_lettings_logs.present? || merge_request.total_sales_logs.present? ? "#{merge_request.total_lettings_logs} lettings logs<br>#{merge_request.total_sales_logs} sales logs".html_safe : display_value_or_placeholder(nil), action: { text: "View", href: "#", visually_hidden_text: "total logs after merge" } },
{ label: "Total stock owners & managing agents after merge", value: merge_request.total_stock_owners.present? || merge_request.total_managing_agents.present? ? "#{merge_request.total_stock_owners} stock owners<br>#{merge_request.total_managing_agents} managing agents".html_safe : display_value_or_placeholder(nil), action: { text: "View", href: "#", visually_hidden_text: "total stock owners & managing agents after merge" } },
]

10
app/models/merge_request.rb

@ -76,4 +76,14 @@ class MergeRequest < ApplicationRecord
([absorbing_organisation] + merging_organisations).reject(&:has_visible_users?)
end
def total_visible_schemes_after_merge
return total_schemes if status == STATUS[:request_merged] || status == STATUS[:processing]
absorbing_organisation.owned_schemes.visible.count + merging_organisations.sum { |org| org.owned_schemes.visible.count }
end
def total_schemes_label
"#{total_visible_schemes_after_merge} Schemes"
end
end

1
config/routes.rb

@ -211,6 +211,7 @@ Rails.application.routes.draw do
get "helpdesk-ticket"
get "merge-start-confirmation"
get "user-outcomes"
get "scheme-outcomes"
get "delete-confirmation", to: "merge_requests#delete_confirmation"
delete "delete", to: "merge_requests#delete"
patch "start-merge", to: "merge_requests#start_merge"

23
spec/requests/merge_requests_controller_spec.rb

@ -451,6 +451,8 @@ RSpec.describe MergeRequestsController, type: :request do
describe "#show" do
before do
create(:merge_request_organisation, merge_request:, merging_organisation: other_organisation)
create_list(:scheme, 2, owning_organisation: organisation)
create_list(:scheme, 2, owning_organisation: other_organisation)
get "/merge-request/#{merge_request.id}", headers:
end
@ -479,30 +481,43 @@ RSpec.describe MergeRequestsController, type: :request do
context "with unmerged request" do
let(:merge_request) { create(:merge_request, absorbing_organisation_id: organisation.id, merge_date: Time.zone.today) }
it "shows users count and has links to view merge outcomes" do
expect(page).to have_link("View", href: user_outcomes_merge_request_path(merge_request))
it "shows users and schemes count and has links to view merge outcomes" do
expect(page).to have_link("View", href: scheme_outcomes_merge_request_path(merge_request))
expect(page).to have_content("4 Users")
expect(page).to have_content("4 Schemes")
end
end
context "with a merged request" do
let(:merge_request) { create(:merge_request, request_merged: true, total_users: 34) }
let(:merge_request) { create(:merge_request, request_merged: true, total_users: 34, total_schemes: 12) }
it "shows saved users count and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("request_merged")
expect(page).not_to have_link("View", href: user_outcomes_merge_request_path(merge_request))
expect(page).to have_content("34 Users")
end
it "shows saved schemes count and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("request_merged")
expect(page).not_to have_link("View", href: scheme_outcomes_merge_request_path(merge_request))
expect(page).to have_content("12 Schemes")
end
end
context "with a processing request" do
let(:merge_request) { create(:merge_request, processing: true, total_users: 51) }
let(:merge_request) { create(:merge_request, processing: true, total_users: 51, total_schemes: 33) }
it "shows saved users count and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("processing")
expect(page).not_to have_link("View", href: user_outcomes_merge_request_path(merge_request))
expect(page).to have_content("51 Users")
end
it "shows saved schemes count and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("processing")
expect(page).not_to have_link("View", href: scheme_outcomes_merge_request_path(merge_request))
expect(page).to have_content("33 Schemes")
end
end
end

Loading…
Cancel
Save