|
|
|
@ -534,6 +534,34 @@ RSpec.describe OrganisationsController, type: :request do
|
|
|
|
|
expect { request }.not_to change(Organisation, :count) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
describe "organisation_relationships#create_housing_provider" do |
|
|
|
|
let!(:housing_provider) { FactoryBot.create(:organisation) } |
|
|
|
|
|
|
|
|
|
let(:params) do |
|
|
|
|
{ |
|
|
|
|
"organisation": { |
|
|
|
|
"related_organisation_id": housing_provider.id, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
let(:request) { post "/organisations/#{organisation.id}/housing-providers", headers:, params: } |
|
|
|
|
|
|
|
|
|
it "creates a new organisation relationship" do |
|
|
|
|
expect { request }.to change(OrganisationRelationship, :count).by(1) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "sets the organisation relationship attributes correctly" do |
|
|
|
|
request |
|
|
|
|
expect(OrganisationRelationship).to exist(child_organisation_id: organisation.id, parent_organisation_id: housing_provider.id, relationship_type: OrganisationRelationship::OWNING) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "redirects to the organisation list" do |
|
|
|
|
request |
|
|
|
|
expect(response).to redirect_to("/organisations/#{organisation.id}/housing-providers?related_organisation_id=#{housing_provider.id}") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "with a data provider user" do |
|
|
|
@ -1166,6 +1194,56 @@ RSpec.describe OrganisationsController, type: :request do
|
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when viewing a specific organisation's housing providers" do |
|
|
|
|
let!(:housing_provider) { FactoryBot.create(:organisation) } |
|
|
|
|
let!(:other_org_housing_provider) { FactoryBot.create(:organisation, name: "Foobar LTD") } |
|
|
|
|
let!(:other_organisation) { FactoryBot.create(:organisation, name: "Foobar LTD 2") } |
|
|
|
|
|
|
|
|
|
before do |
|
|
|
|
FactoryBot.create(:organisation_relationship, child_organisation: organisation, parent_organisation: housing_provider, relationship_type: OrganisationRelationship.relationship_types[:owning]) |
|
|
|
|
FactoryBot.create(:organisation_relationship, child_organisation: other_organisation, parent_organisation: other_org_housing_provider, relationship_type: OrganisationRelationship.relationship_types[:owning]) |
|
|
|
|
get "/organisations/#{organisation.id}/housing-providers", headers:, params: {} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "displays the name of the organisation" do |
|
|
|
|
expect(page).to have_content(organisation.name) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "has a sub-navigation with correct tabs" do |
|
|
|
|
expect(page).to have_css(".app-sub-navigation") |
|
|
|
|
expect(page).to have_content("Users") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "shows a table of housing providers" do |
|
|
|
|
expected_html = "<table class=\"govuk-table\"" |
|
|
|
|
expect(response.body).to include(expected_html) |
|
|
|
|
expect(response.body).to include(housing_provider.name) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "shows only housing providers for this organisation" do |
|
|
|
|
expect(page).to have_content(housing_provider.name) |
|
|
|
|
expect(page).not_to have_content(other_org_housing_provider.name) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "shows the pagination count" do |
|
|
|
|
expect(page).to have_content("1 total housing providers") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when adding a housing provider" do |
|
|
|
|
before do |
|
|
|
|
get "/organisations/#{organisation.id}/housing-providers/add", headers:, params: {} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "has the correct header" do |
|
|
|
|
expect(response.body).to include("What is the name of this organisation's housing provider?") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "shows an add button" do |
|
|
|
|
expect(page).to have_button("Add") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when there are more than 20 organisations" do |
|
|
|
|
let(:total_organisations_count) { Organisation.all.count } |
|
|
|
|
|
|
|
|
@ -1323,6 +1401,34 @@ RSpec.describe OrganisationsController, type: :request do
|
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
describe "organisation_relationships#create_housing_provider" do |
|
|
|
|
let!(:housing_provider) { FactoryBot.create(:organisation) } |
|
|
|
|
|
|
|
|
|
let(:params) do |
|
|
|
|
{ |
|
|
|
|
"organisation": { |
|
|
|
|
"related_organisation_id": housing_provider.id, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
let(:request) { post "/organisations/#{organisation.id}/housing-providers", headers:, params: } |
|
|
|
|
|
|
|
|
|
it "creates a new organisation relationship" do |
|
|
|
|
expect { request }.to change(OrganisationRelationship, :count).by(1) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "sets the organisation relationship attributes correctly" do |
|
|
|
|
request |
|
|
|
|
expect(OrganisationRelationship).to exist(child_organisation_id: organisation.id, parent_organisation_id: housing_provider.id, relationship_type: OrganisationRelationship::OWNING) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "redirects to the organisation list" do |
|
|
|
|
request |
|
|
|
|
expect(response).to redirect_to("/organisations/#{organisation.id}/housing-providers?related_organisation_id=#{housing_provider.id}") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|