|
|
|
|
@ -61,6 +61,24 @@ RSpec.describe DataProtectionConfirmationBannerComponent, type: :component do
|
|
|
|
|
expect(render).to have_selector("p", text: "Your organisation must accept the Data Sharing Agreement before you can create any logs.") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "and org doesn't own stock and has a parent organisation that hasn't signed DSA" do |
|
|
|
|
before do |
|
|
|
|
organisation.data_protection_confirmation.update!(confirmed: false) |
|
|
|
|
organisation.update!(holds_own_stock: false) |
|
|
|
|
parent_organisation = create(:organisation, :without_dpc, holds_own_stock: true) |
|
|
|
|
create(:organisation_relationship, child_organisation: organisation, parent_organisation:) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "displays the banner and asks to sign" do |
|
|
|
|
expect(component.display_banner?).to eq(true) |
|
|
|
|
expect(render).to have_link( |
|
|
|
|
"Read the Data Sharing Agreement", |
|
|
|
|
href: "/organisations/#{organisation.id}/data-sharing-agreement", |
|
|
|
|
) |
|
|
|
|
expect(render).to have_selector("p", text: "Your data protection officer must accept the Data Sharing Agreement on CORE before you can create any logs.") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when org has a signed data sharing agremeent" do |
|
|
|
|
@ -132,6 +150,20 @@ RSpec.describe DataProtectionConfirmationBannerComponent, type: :component do
|
|
|
|
|
expect(render).to have_selector("p", text: "Your data protection officer must accept the Data Sharing Agreement on CORE before you can create any logs.") |
|
|
|
|
expect(render).to have_selector("p", text: "You can ask: #{dpo.name}") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "and has a parent organisation that owns stock and has signed DSA" do |
|
|
|
|
before do |
|
|
|
|
parent_organisation = create(:organisation, holds_own_stock: true) |
|
|
|
|
create(:organisation_relationship, child_organisation: organisation, parent_organisation:) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "displays the banner and shows DPOs" do |
|
|
|
|
expect(component.display_banner?).to eq(true) |
|
|
|
|
expect(render.css("a")).to be_empty |
|
|
|
|
expect(render).to have_selector("p", text: "Your data protection officer must accept the Data Sharing Agreement on CORE before you can create any logs.") |
|
|
|
|
expect(render).to have_selector("p", text: "You can ask: #{dpo.name}") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "when user is a DPO" do |
|
|
|
|
@ -146,6 +178,22 @@ RSpec.describe DataProtectionConfirmationBannerComponent, type: :component do
|
|
|
|
|
) |
|
|
|
|
expect(render).to have_selector("p", text: "Your organisation must accept the Data Sharing Agreement before you can create any logs.") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context "and has a parent organisation that owns stock and has signed DSA" do |
|
|
|
|
before do |
|
|
|
|
parent_organisation = create(:organisation, holds_own_stock: true) |
|
|
|
|
create(:organisation_relationship, child_organisation: organisation, parent_organisation:) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "displays the banner and asks to sign" do |
|
|
|
|
expect(component.display_banner?).to eq(true) |
|
|
|
|
expect(render).to have_link( |
|
|
|
|
"Read the Data Sharing Agreement", |
|
|
|
|
href: "/organisations/#{organisation.id}/data-sharing-agreement", |
|
|
|
|
) |
|
|
|
|
expect(render).to have_selector("p", text: "Your organisation must accept the Data Sharing Agreement before you can create any logs.") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|