Merge pull request #7018 from SuperTux88/fix-reshare-metadata
Fix regressions from #6998
This commit is contained in:
commit
ae2cecefae
2 changed files with 49 additions and 6 deletions
|
|
@ -138,9 +138,8 @@ class PostPresenter < BasePresenter
|
||||||
end
|
end
|
||||||
|
|
||||||
def tags
|
def tags
|
||||||
tags = @post.is_a?(Reshare) ? @post.root.tags : @post.tags
|
tags = @post.is_a?(Reshare) ? @post.absolute_root.try(:tags) : @post.tags
|
||||||
return tags.map(&:name) if tags
|
tags ? tags.map(&:name) : []
|
||||||
[]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def comma_separated_tags
|
def comma_separated_tags
|
||||||
|
|
@ -152,6 +151,6 @@ class PostPresenter < BasePresenter
|
||||||
end
|
end
|
||||||
|
|
||||||
def description
|
def description
|
||||||
message.plain_text_without_markdown(truncate: 1000)
|
message.try(:plain_text_without_markdown, truncate: 1000)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ describe PostPresenter do
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with posts without text" do
|
context "with posts without text" do
|
||||||
it " displays a messaage with the post class" do
|
it "displays a messaage with the post class" do
|
||||||
@sm = double(message: double(present?: false), author: bob.person, author_name: bob.person.name)
|
@sm = double(message: double(present?: false), author: bob.person, author_name: bob.person.name)
|
||||||
@presenter.post = @sm
|
@presenter.post = @sm
|
||||||
expect(@presenter.send(:title)).to eq("A post from #{@sm.author.name}")
|
expect(@presenter.send(:title)).to eq("A post from #{@sm.author.name}")
|
||||||
|
|
@ -89,4 +89,48 @@ describe PostPresenter do
|
||||||
expect(presenter.as_json).to be_a(Hash)
|
expect(presenter.as_json).to be_a(Hash)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#tags" do
|
||||||
|
it "returns the tag of the post" do
|
||||||
|
post = FactoryGirl.create(:status_message, text: "#hello #world", public: true)
|
||||||
|
|
||||||
|
expect(PostPresenter.new(post).send(:tags)).to match_array(%w(hello world))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the tag of the absolute_root of a Reshare" do
|
||||||
|
post = FactoryGirl.create(:status_message, text: "#hello #world", public: true)
|
||||||
|
first_reshare = FactoryGirl.create(:reshare, root: post)
|
||||||
|
second_reshare = FactoryGirl.create(:reshare, root: first_reshare)
|
||||||
|
|
||||||
|
expect(PostPresenter.new(second_reshare).send(:tags)).to match_array(%w(hello world))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not raise if the root of a reshare does not exist anymore" do
|
||||||
|
reshare = FactoryGirl.create(:reshare)
|
||||||
|
reshare.root = nil
|
||||||
|
|
||||||
|
expect(PostPresenter.new(reshare).send(:tags)).to eq([])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#description" do
|
||||||
|
it "returns the first 1000 chars of the text" do
|
||||||
|
post = FactoryGirl.create(:status_message, text: "a" * 1001, public: true)
|
||||||
|
|
||||||
|
expect(PostPresenter.new(post).send(:description)).to eq("#{'a' * 997}...")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not change the message if less or equal 1000 chars" do
|
||||||
|
post = FactoryGirl.create(:status_message, text: "a" * 1000, public: true)
|
||||||
|
|
||||||
|
expect(PostPresenter.new(post).send(:description)).to eq("a" * 1000)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not raise if the root of a reshare does not exist anymore" do
|
||||||
|
reshare = FactoryGirl.create(:reshare)
|
||||||
|
reshare.root = nil
|
||||||
|
|
||||||
|
expect(PostPresenter.new(reshare).send(:description)).to eq(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue