- expected_result = [
- {"@gsimg", gsimg},
- {"@archaeme", archaeme},
- {"@archaeme@archae.me", archaeme_remote}
- ]
+ assert expected_text ==
+ ~s(<span class="h-card"><a data-user="#{user.id}" class="u-url mention" href="#{
+ user.ap_id
+ }" rel="ugc">@<span>#{user.nickname}</span></a></span> <span class="h-card"><a data-user="#{
+ other_user.id
+ }" class="u-url mention" href="#{other_user.ap_id}" rel="ugc">@<span>#{
+ other_user.nickname
+ }</span></a></span> hey dudes i hate <span class="h-card"><a data-user="#{
+ third_user.id
+ }" class="u-url mention" href="#{third_user.ap_id}" rel="ugc">@<span>#{
+ third_user.nickname
+ }</span></a></span>)
+ end
+
+ test "given the 'safe_mention' option, it will still work without any mention" do
+ text = "A post without any mention"
+ {expected_text, mentions, [] = _tags} = Formatter.linkify(text, safe_mention: true)
+
+ assert mentions == []
+ assert expected_text == text
+ end
+
+ test "given the 'safe_mention' option, it will keep text after newlines" do
+ user = insert(:user)
+ text = " @#{user.nickname}\n hey dude\n\nhow are you doing?"
+
+ {expected_text, _, _} = Formatter.linkify(text, safe_mention: true)
+
+ assert expected_text =~ "how are you doing?"
+ end