mirror of
https://github.com/hanzoai/forum.git
synced 2026-09-30 21:51:19 +00:00
72 lines
2.5 KiB
Ruby
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
|