diff --git a/spec/models/partners/profile_spec.rb b/spec/models/partners/profile_spec.rb index d5b7290eb6..76aaac100e 100644 --- a/spec/models/partners/profile_spec.rb +++ b/spec/models/partners/profile_spec.rb @@ -190,6 +190,13 @@ profile.update(pick_up_email: "") expect(profile.split_pick_up_emails).to match_array([]) end + + it "should correctly split strings" do + profile.update(pick_up_email: "test me, pick_up@org.com, pick_up2@org.com, test me") + expect(profile.split_pick_up_emails).to match_array(["test", "me", "pick_up@org.com", "pick_up2@org.com", "test", "me"]) + profile.update(pick_up_email: "test me. pick_up@org.com, pick_up2@org.com. test me") + expect(profile.split_pick_up_emails).to match_array(["test", "me.", "pick_up@org.com", "pick_up2@org.com.", "test", "me"]) + end end describe "pick up email address validation" do @@ -210,11 +217,28 @@ context "invalid emails" do let(:profile) { build(:partner_profile, pick_up_email: "pick_up@org.com, pick_up2@org.com, asdf") } it "should not allow invalid email addresses" do + expect(profile).to_not be_valid + profile.update(pick_up_email: "test me, pick_up@org.com, pick_up2@org.com, test me") expect(profile).to_not be_valid profile.update(pick_up_email: "pick_up@org.com, pick_up2@org.com") expect(profile).to be_valid end + it "should not allow input having emails separated by non-word characters" do + profile.update(pick_up_email: "test me. pick_up@org.com, pick_up2@org.com. test me") + expect(profile).to_not be_valid + profile.update(pick_up_email: "pick_up@org.com. pick_up2@org.com") + expect(profile).to_not be_valid + profile.update(pick_up_email: "pick_up@org.com.pick_up2@org.com") + expect(profile).to_not be_valid + profile.update(pick_up_email: "pick_up@org.com/ pick_up2@org.com/ pick_up3@org.com") + expect(profile).to_not be_valid + profile.update(pick_up_email: "pick_up@org.com- pick_up2@org.com- pick_up3@org.com") + expect(profile).to_not be_valid + profile.update(pick_up_email: "pick_up@org.com' pick_up2@org.com' pick_up3@org.com") + expect(profile).to_not be_valid + end + it "should handle nil value" do profile.update(pick_up_email: nil) expect(profile).to be_valid