Browse Source

CLDC-4029: Add tests

CLDC-4029-add-additional-user-filters
Frank Ma 1 month ago
parent
commit
4c13b8bc0a
  1. 47
      spec/services/filter_manager_spec.rb

47
spec/services/filter_manager_spec.rb

@ -94,4 +94,51 @@ describe FilterManager do
expect(described_class.filter_schemes(Scheme.all, nil, {}, nil, nil)).to eq(alphabetical_order_schemes) expect(described_class.filter_schemes(Scheme.all, nil, {}, nil, nil)).to eq(alphabetical_order_schemes)
end end
end end
describe "filter_users" do
let(:data_provider_user) { FactoryBot.create(:user, role: "data_provider") }
let(:data_coordinator_user) { FactoryBot.create(:user, role: "data_coordinator") }
let(:support_user) { FactoryBot.create(:user, role: "support") }
let(:key_contact_user) { FactoryBot.create(:user, is_key_contact: true) }
let(:dpo_user) { FactoryBot.create(:user, is_dpo: true) }
let(:key_contact_dpo_user) { FactoryBot.create(:user, is_key_contact: true, is_dpo: true) }
context "when filtering by role" do
it "returns users with the role" do
filter = { "role" => %w[data_provider] }
result = described_class.filter_users(User.all, nil, filter, nil)
expect(result).to include(data_provider_user)
expect(result).not_to include(data_coordinator_user)
expect(result).not_to include(support_user)
end
it "returns users with multiple roles selected" do
filter = { "role" => %w[data_provider data_coordinator] }
result = described_class.filter_users(User.all, nil, filter, nil)
expect(result).to include(data_provider_user)
expect(result).to include(data_coordinator_user)
expect(result).not_to include(support_user)
end
end
context "when filtering by additional responsibilities" do
it "returns users with the additional responsibilities" do
filter = { "additional_responsibilities" => %w[data_protection_officer] }
result = described_class.filter_users(User.all, nil, filter, nil)
expect(result).to include(dpo_user)
expect(result).to include(key_contact_dpo_user)
expect(result).not_to include(key_contact_user)
expect(result).not_to include(support_user)
end
it "returns users with multiple additional responsibilities selected" do
filter = { "additional_responsibilities" => %w[data_protection_officer key_contact] }
result = described_class.filter_users(User.all, nil, filter, nil)
expect(result).to include(dpo_user)
expect(result).to include(key_contact_dpo_user)
expect(result).to include(key_contact_user)
expect(result).not_to include(support_user)
end
end
end
end end

Loading…
Cancel
Save