diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 8863f3bc4..df3f82911 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -185,4 +185,33 @@ RSpec.describe User, type: :model do }.not_to change(user.versions, :count) end end + + describe "scopes" do + before do + FactoryBot.create(:user, name: "Joe Bloggs", email: "joe@example.com") + FactoryBot.create(:user, name: "Tom Smith", email: "tom@example.com") + FactoryBot.create(:user, name: "Jenny Ford", email: "jenny@smith.com") + end + + context "when searching by name" do + it "returns case insensitive matching records" do + expect(described_class.search_by_name("Joe").count).to eq(1) + expect(described_class.search_by_name("joe").count).to eq(1) + end + end + + context "when searching by email" do + it "returns case insensitive matching records" do + expect(described_class.search_by_email("Example").count).to eq(2) + expect(described_class.search_by_email("example").count).to eq(2) + end + end + + context "when searching by all searchable field" do + it "returns case insensitive matching records" do + expect(described_class.search_by("Smith").count).to eq(2) + expect(described_class.search_by("smith").count).to eq(2) + end + end + end end