Skip to content

Commit

Permalink
🩹 Update specs to check Unicode 12.0 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
ticky committed Mar 5, 2019
1 parent 5446f1c commit bfa8a3f
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions spec/emoji_regex/emoji_regex_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,64 @@

RSpec.describe EmojiRegex do
describe "::Regex" do
it "matches ⌚️ default emoji presentation character (Emoji_Presentation)" do
it "matches ⌚️ watch (default emoji presentation character (Emoji_Presentation))" do
expect("\u{231A}".scan(EmojiRegex::Regex)).to eql(["\u{231A}"])
end

it "matches ↔️ default text presentation character rendered as emoji" do
it "matches ↔️ left-right arrow (default text presentation character rendered as emoji)" do
expect("\u{2194}\u{FE0F}".scan(EmojiRegex::Regex)).to eql(["\u{2194}\u{FE0F}"])
end

it "matches 👩 emoji modifier base (Emoji_Modifier_Base)" do
it "matches 👩 woman (emoji modifier base (Emoji_Modifier_Base))" do
expect("\u{1F469}".scan(EmojiRegex::Regex)).to eql(["\u{1F469}"])
end

it "matches 👩🏿 emoji modifier base followed by a modifier" do
it "matches 👩🏿 woman: dark skin tone (emoji modifier base followed by a modifier)" do
expect("\u{1F469}\u{1F3FF}".scan(EmojiRegex::Regex)).to eql(["\u{1F469}\u{1F3FF}"])
end

it "matches 👩🏾‍✈️🏿 woman pilot: medium-dark skin tone (emoji modifier base followed by a modifier, with ZWJ sequence and default text representation character)" do
expect("\u{1F469}\u{1F3FE}\u{200D}\u{2708}\u{FE0F}".scan(EmojiRegex::Regex)).to eql(["\u{1F469}\u{1F3FE}\u{200D}\u{2708}\u{FE0F}"])
end

it "matches 🧏🏻‍♀️ deaf woman: light skin tone (emoji modifier bae followed by a modifier and gender ZWJ sequence)" do
expect("\u{1F9CF}\u{1F3FB}\u{200D}\u{2640}\u{FE0F}".scan(EmojiRegex::Regex)).to eql(["\u{1F9CF}\u{1F3FB}\u{200D}\u{2640}\u{FE0F}"])
end

it "doesn't match non-emojis" do
expect("abc".scan(EmojiRegex::Regex)).to eql([])
end
end

describe '::Text' do
it "matches ⌚️ default emoji presentation character (Emoji_Presentation)" do
it "matches ⌚️ watch (default emoji presentation character (Emoji_Presentation))" do
expect("\u{231A}".scan(EmojiRegex::Text)).to eql(["\u{231A}"])
end

it "matches ↔ default text representation character" do
it "matches ↔ left-right arrow (default text representation character)" do
expect("\u{2194}".scan(EmojiRegex::Text)).to eql(["\u{2194}"])
end

it "matches ↔️ default text presentation character rendered as emoji" do
it "matches ↔️ left-right arrow (default text presentation character rendered as emoji)" do
expect("\u{2194}\u{FE0F}".scan(EmojiRegex::Text)).to eql(["\u{2194}\u{FE0F}"])
end

it "matches 👩 emoji modifier base (Emoji_Modifier_Base)" do
it "matches 👩 woman (emoji modifier base (Emoji_Modifier_Base))" do
expect("\u{1F469}".scan(EmojiRegex::Text)).to eql(["\u{1F469}"])
end

it "matches 👩🏿 emoji modifier base followed by a modifier" do
it "matches 👩🏿 woman: dark skin tone (emoji modifier base followed by a modifier)" do
expect("\u{1F469}\u{1F3FF}".scan(EmojiRegex::Text)).to eql(["\u{1F469}\u{1F3FF}"])
end

it "matches 👩🏾‍✈️🏿 woman pilot: medium-dark skin tone (emoji modifier base followed by a modifier, with ZWJ sequence and default text representation character)" do
expect("\u{1F469}\u{1F3FE}\u{200D}\u{2708}\u{FE0F}".scan(EmojiRegex::Text)).to eql(["\u{1F469}\u{1F3FE}\u{200D}\u{2708}\u{FE0F}"])
end

it "matches 🧏🏻‍♀️ deaf woman: light skin tone (emoji modifier bae followed by a modifier and gender ZWJ sequence)" do
expect("\u{1F9CF}\u{1F3FB}\u{200D}\u{2640}\u{FE0F}".scan(EmojiRegex::Text)).to eql(["\u{1F9CF}\u{1F3FB}\u{200D}\u{2640}\u{FE0F}"])
end

it "doesn't match non-emojis" do
expect("abc".scan(EmojiRegex::Text)).to eql([])
end
Expand Down

0 comments on commit bfa8a3f

Please sign in to comment.