Browse Source

feat: add/update org filter tests

pull/1789/head
natdeanlewissoftwire 3 years ago
parent
commit
6ec00f0ac0
  1. 2
      app/helpers/filters_helper.rb
  2. 2
      app/views/logs/_log_filters.html.erb
  3. 53
      spec/helpers/filters_helper_spec.rb

2
app/helpers/filters_helper.rb

@ -44,7 +44,7 @@ module FiltersHelper
JSON.parse(session[session_name_for(filter_type)])[filter] || ""
end
def owning_organisations_filter_options(user)
def owning_organisation_filter_options(user)
organisation_options = user.support? ? Organisation.all : ([user.organisation] + user.organisation.stock_owners + user.organisation.absorbed_organisations).uniq
[OpenStruct.new(id: "", name: "Select an option")] + organisation_options.map { |org| OpenStruct.new(id: org.id, name: org.name) }
end

2
app/views/logs/_log_filters.html.erb

@ -74,7 +74,7 @@
type: "select",
label: "Owning Organisation",
category: "owning_organisation",
options: owning_organisations_filter_options(@current_user),
options: owning_organisation_filter_options(@current_user),
},
},
},

53
spec/helpers/filters_helper_spec.rb

@ -161,23 +161,26 @@ RSpec.describe FiltersHelper do
end
end
describe "#owning_organisations_filter_options" do
describe "#owning_organisation_filter_options" do
let(:parent_organisation) { FactoryBot.create(:organisation, name: "Parent organisation") }
let(:child_organisation) { FactoryBot.create(:organisation, name: "Child organisation") }
let!(:absorbed_organisation) { FactoryBot.create(:organisation, name: "Absorbed organisation", absorbing_organisation: child_organisation) }
before do
FactoryBot.create(:organisation_relationship, parent_organisation:, child_organisation:)
FactoryBot.create(:organisation, name: "Other organisation", id: 99)
user.organisation.reload
end
context "with a support user" do
let(:user) { FactoryBot.create(:user, :support, organisation: child_organisation) }
it "returns a list of all organisations" do
expect(owning_organisations_filter_options(user)).to eq([
expect(owning_organisation_filter_options(user)).to eq([
OpenStruct.new(id: "", name: "Select an option"),
OpenStruct.new(id: parent_organisation.id, name: "Parent organisation"),
OpenStruct.new(id: child_organisation.id, name: "Child organisation"),
OpenStruct.new(id: absorbed_organisation.id, name: "Absorbed organisation"),
OpenStruct.new(id: parent_organisation.id, name: "Parent organisation"),
OpenStruct.new(id: 99, name: "Other organisation"),
])
end
@ -186,16 +189,56 @@ RSpec.describe FiltersHelper do
context "with a data coordinator user" do
let(:user) { FactoryBot.create(:user, :data_coordinator, organisation: child_organisation) }
it "returns a list of paret orgs and your own organisation" do
expect(owning_organisations_filter_options(user)).to eq([
it "returns a list of parent orgs and your own organisation" do
expect(owning_organisation_filter_options(user.reload)).to eq([
OpenStruct.new(id: "", name: "Select an option"),
OpenStruct.new(id: child_organisation.id, name: "Child organisation"),
OpenStruct.new(id: absorbed_organisation.id, name: "Absorbed organisation"),
OpenStruct.new(id: parent_organisation.id, name: "Parent organisation"),
])
end
end
end
describe "#managing_organisation_filter_options" do
let(:parent_organisation) { FactoryBot.create(:organisation, name: "Parent organisation") }
let(:child_organisation) { FactoryBot.create(:organisation, name: "Child organisation") }
let!(:absorbed_organisation) { FactoryBot.create(:organisation, name: "Absorbed organisation", absorbing_organisation: parent_organisation) }
before do
FactoryBot.create(:organisation_relationship, parent_organisation:, child_organisation:)
FactoryBot.create(:organisation, name: "Other organisation", id: 99)
user.organisation.reload
end
context "with a support user" do
let(:user) { FactoryBot.create(:user, :support, organisation: parent_organisation) }
it "returns a list of all organisations" do
expect(managing_organisation_filter_options(user)).to eq([
OpenStruct.new(id: "", name: "Select an option"),
OpenStruct.new(id: parent_organisation.id, name: "Parent organisation"),
OpenStruct.new(id: absorbed_organisation.id, name: "Absorbed organisation"),
OpenStruct.new(id: child_organisation.id, name: "Child organisation"),
OpenStruct.new(id: 99, name: "Other organisation"),
])
end
end
context "with a data coordinator user" do
let(:user) { FactoryBot.create(:user, :data_coordinator, organisation: parent_organisation) }
it "returns a list of child orgs and your own organisation" do
expect(managing_organisation_filter_options(user.reload)).to eq([
OpenStruct.new(id: "", name: "Select an option"),
OpenStruct.new(id: parent_organisation.id, name: "Parent organisation"),
OpenStruct.new(id: child_organisation.id, name: "Child organisation"),
OpenStruct.new(id: absorbed_organisation.id, name: "Absorbed organisation"),
])
end
end
end
describe "#collection_year_options" do
it "includes 2023/2024 option" do
expect(collection_year_options).to eq(

Loading…
Cancel
Save