Correct mention edge cases

@sam. was not correctly detected as a mention
This commit is contained in:
Sam 2017-07-20 11:52:29 -04:00
parent a9ab3f9ef0
commit 911ffbb98c
2 changed files with 11 additions and 3 deletions

View File

@ -39,7 +39,7 @@ export function setup(helper) {
helper.registerPlugin(md => { helper.registerPlugin(md => {
const rule = { const rule = {
matcher: /@\w[\w.-]{0,59}/, matcher: /@\w[\w.-]{0,58}\w|@\w/,
onMatch: addMention onMatch: addMention
}; };

View File

@ -146,10 +146,18 @@ describe PrettyText do
expect(PrettyText.cook('@hello @hello @hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span></p>" expect(PrettyText.cook('@hello @hello @hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span></p>"
end end
it "can handle mentions" do it "can handle mention edge cases" do
expect(PrettyText.cook("hi\n@s")).to eq("<p>hi<br>\n<span class=\"mention\">@s</span></p>")
expect(PrettyText.cook("hi\n@ss")).to eq("<p>hi<br>\n<span class=\"mention\">@ss</span></p>")
expect(PrettyText.cook("hi\n@s.")).to eq("<p>hi<br>\n<span class=\"mention\">@s</span>.</p>")
expect(PrettyText.cook("hi\n@s.s")).to eq("<p>hi<br>\n<span class=\"mention\">@s.s</span></p>")
expect(PrettyText.cook("hi\n@.s.s")).to eq("<p>hi<br>\n@.s.s</p>")
end
it "can handle mention with hyperlinks" do
Fabricate(:user, username: "sam") Fabricate(:user, username: "sam")
expect(PrettyText.cook("hi @sam! hi")).to match_html '<p>hi <a class="mention" href="/u/sam">@sam</a>! hi</p>' expect(PrettyText.cook("hi @sam! hi")).to match_html '<p>hi <a class="mention" href="/u/sam">@sam</a>! hi</p>'
expect(PrettyText.cook("hi\n@sam")).to eq("<p>hi<br>\n<a class=\"mention\" href=\"/u/sam\">@sam</a></p>") expect(PrettyText.cook("hi\n@sam.")).to eq("<p>hi<br>\n<a class=\"mention\" href=\"/u/sam\">@sam</a>.</p>")
end end
it "can handle mentions inside a hyperlink" do it "can handle mentions inside a hyperlink" do