diff --git a/app/models/pet.rb b/app/models/pet.rb index 9db914102..8acc5181d 100644 --- a/app/models/pet.rb +++ b/app/models/pet.rb @@ -95,6 +95,9 @@ class Pet < ApplicationRecord query.where(published: true).order(:breed).distinct.pluck(:breed) } + # Returns an array of unique species of an organization + scope :unique_species, -> { distinct.pluck(:species) } + attr_writer :toggle # check if pet has any applications with adoption pending status diff --git a/test/models/pet_test.rb b/test/models/pet_test.rb index 9b6f4fa26..77df1e66f 100644 --- a/test/models/pet_test.rb +++ b/test/models/pet_test.rb @@ -83,6 +83,19 @@ class PetTest < ActiveSupport::TestCase assert_not Pet.with_photo.include?(pet_without_image) end end + + context ".unique_species" do + should "returns an array of unique species" do + create(:pet, species: "Dog") + create(:pet, species: "Cat") + create(:pet, species: "Dog") + + unique_species = Pet.unique_species + + assert_equal ["Cat", "Dog"], unique_species.sort + assert_equal 1, unique_species.count("Dog") + end + end end context "#has_adoption_pending?" do