Files

72 lines
2.5 KiB
Ruby

# frozen_string_literal: true
require "email"
RSpec.describe Email do
describe "is_valid?" do
it "treats a nil as invalid" do
expect(Email.is_valid?(nil)).to eq(false)
end
it "treats a good email as valid" do
expect(Email.is_valid?("[email protected]")).to eq(true)
end
it "treats a bad email as invalid" do
expect(Email.is_valid?("sam@sam")).to eq(false)
end
it "allows museum tld" do
expect(Email.is_valid?("[email protected]")).to eq(true)
end
it "does not think a word is an email" do
expect(Email.is_valid?("sam")).to eq(false)
end
end
describe "downcase" do
it "downcases local and host part" do
expect(Email.downcase("[email protected]")).to eq("[email protected]")
expect(Email.downcase("[email protected]")).to eq("[email protected]")
end
it "leaves invalid emails untouched" do
expect(Email.downcase("SAM@GMAILCOM")).to eq("SAM@GMAILCOM")
expect(Email.downcase("samGMAIL.COM")).to eq("samGMAIL.COM")
expect(Email.downcase("sam@[email protected]")).to eq("sam@[email protected]")
end
end
describe "obfuscate" do
it "correctly obfuscates emails" do
expect(Email.obfuscate("[email protected]")).to eq("*@*.com")
expect(Email.obfuscate("[email protected]")).to eq("t***@t***.**.uk")
expect(Email.obfuscate("[email protected]")).to eq("s****e@e*****e.com")
expect(Email.obfuscate("[email protected]")).to eq("v*********n@e*****e.com")
expect(Email.obfuscate("[email protected]")).to eq(
"d********************************l@e*****e.com",
)
expect(Email.obfuscate("[email protected]")).to eq(
"o*********************n@e*****e.com",
)
expect(Email.obfuscate("[email protected]")).to eq(
"f********************n@e*****e.com",
)
expect(Email.obfuscate("[email protected]")).to eq(
"u*******************g@e*****e.com",
)
expect(Email.obfuscate("[email protected]")).to eq("*@e*****e.com")
expect(Email.obfuscate("[email protected]")).to eq(
"e************d@s*************e.com",
)
expect(Email.obfuscate("[email protected]")).to eq("e*****e@*.example")
expect(Email.obfuscate("[email protected]")).to eq(
"m***************e@e*****e.org",
)
expect(Email.obfuscate("user%[email protected]")).to eq("u**************m@e*****e.org")
expect(Email.obfuscate("[email protected]")).to eq("u***-@e*****e.org")
end
end
end