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
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
|
|
|