Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

93 lines
4.2 KiB

require "rails_helper"
RSpec.describe "merge_requests/show.html.erb", type: :view do
let(:absorbing_organisation) { create(:organisation, name: "Absorbing Org", with_dsa: false) }
let(:dpo_user) { create(:user, name: "DPO User", is_dpo: true, organisation: absorbing_organisation) }
let(:merge_request) { create(:merge_request, absorbing_organisation_id: absorbing_organisation.id, signed_dsa: false) }
before do
assign(:merge_request, merge_request)
render
end
it "displays the correct title" do
expect(rendered).to have_selector("h1.govuk-heading-l") do |h1|
expect(h1).to have_selector("span.govuk-caption-l", text: "Merge request")
expect(h1).to have_content("Absorbing Org")
end
end
it "displays the notification banner when DSA is not signed" do
expect(rendered).to have_selector(".govuk-notification-banner")
expect(rendered).to have_content("The absorbing organisation must accept the Data Sharing Agreement before merging.")
end
it "displays the requester details" do
expect(rendered).to have_selector("dt", text: "Requester")
expect(rendered).to have_selector("dd", text: merge_request.requester&.name || "No answer provided")
end
it "displays the helpdesk ticket details" do
expect(rendered).to have_selector("dt", text: "Helpdesk ticket")
if merge_request.helpdesk_ticket.present?
expect(rendered).to have_link(merge_request.helpdesk_ticket, href: "https://mhclgdigital.atlassian.net/browse/#{merge_request.helpdesk_ticket}")
else
expect(rendered).to have_selector("dd", text: "No answer provided")
end
end
it "displays the status details" do
expect(rendered).to have_selector("dt", text: "Status")
expect(rendered).to have_selector("dd", text: "Incomplete")
end
it "displays the absorbing organisation details" do
expect(rendered).to have_selector("dt", text: "Absorbing organisation")
expect(rendered).to have_selector("dd", text: merge_request.absorbing_organisation_name)
end
it "displays the merge date details" do
expect(rendered).to have_selector("dt", text: "Merge date")
expect(rendered).to have_selector("dd", text: merge_request.merge_date || "No answer provided")
end
context "when the merge request is complete" do
before do
merge_request.update!(request_merged: true, signed_dsa: true, total_users: 10, total_schemes: 5, total_lettings_logs: 20, total_sales_logs: 30, total_stock_owners: 40, total_managing_agents: 50)
assign(:merge_request, merge_request)
render
end
it "has status of 'Merged'" do
expect(rendered).to have_selector("dd", text: "Merged")
end
it "displays the total users after merge details" do
expect(rendered).to have_selector("dt", text: "Total users after merge")
expect(rendered).to have_selector("dd", text: merge_request.total_users)
end
it "displays the total schemes after merge details" do
expect(rendered).to have_selector("dt", text: "Total schemes after merge")
expect(rendered).to have_selector("dd", text: merge_request.total_schemes)
end
it "displays the total logs after merge details" do
expect(rendered).to have_selector("dt", text: "Total logs after merge")
if merge_request.total_lettings_logs.present? || merge_request.total_sales_logs.present?
combined_text = []
combined_text << "#{merge_request.total_lettings_logs} lettings logs" if merge_request.total_lettings_logs.present?
combined_text << "#{merge_request.total_sales_logs} sales logs" if merge_request.total_sales_logs.present?
expect(rendered).to have_selector("dd", text: combined_text.join(""))
end
end
it "displays the total stock owners & managing agents after merge details" do
expect(rendered).to have_selector("dt", text: "Total stock owners & managing agents after merge")
combined_text = []
combined_text << "#{merge_request.total_stock_owners} stock owners" if merge_request.total_stock_owners.present?
combined_text << "#{merge_request.total_managing_agents} managing agents" if merge_request.total_managing_agents.present?
expect(rendered).to have_selector("dd", text: combined_text.join("\n"))
end
end
end