DEV: Update test case for TopicEmbed.

This commit is contained in:
Guo Xiang Tan 2018-08-24 09:41:54 +08:00
parent 1ba24496ab
commit 932195d828
2 changed files with 24 additions and 10 deletions

View File

@ -88,11 +88,20 @@ class TopicEmbed < ActiveRecord::Base
post.reload post.reload
end end
revision[:raw] = absolutize_urls(url, contents) if content_sha1 != embed.content_sha1 if content_sha1 != embed.content_sha1
revision[:raw] = absolutize_urls(url, contents)
end
revision[:title] = title if title != post.topic.title revision[:title] = title if title != post.topic.title
post.revise(user, revision, skip_validations: true, bypass_rate_limiter: true) unless revision.empty? unless revision.empty?
embed.update_column(:content_sha1, content_sha1) if revision[:raw] post.revise(user, revision,
skip_validations: true,
bypass_rate_limiter: true
)
end
embed.update!(content_sha1: content_sha1) if revision[:raw]
end end
end end

View File

@ -22,6 +22,7 @@ describe TopicEmbed do
context 'creation of a post' do context 'creation of a post' do
let!(:post) { TopicEmbed.import(user, url, title, contents) } let!(:post) { TopicEmbed.import(user, url, title, contents) }
let(:topic_embed) { TopicEmbed.find_by(post: post) }
it "works as expected with a new URL" do it "works as expected with a new URL" do
expect(post).to be_present expect(post).to be_present
@ -41,23 +42,27 @@ describe TopicEmbed do
end end
it "Supports updating the post title" do it "Supports updating the post title" do
post = TopicEmbed.import(user, url, "I am a new title", contents) TopicEmbed.import(user, url, "I am a new title", contents)
expect(post.topic.title).to eq("I am a new title") topic_embed.reload
expect(topic_embed.post.topic.title).to eq("I am a new title")
end end
it "Supports updating the post content" do it "Supports updating the post content" do
post = TopicEmbed.import(user, url, title, "muhahaha new contents!") expect do
TopicEmbed.import(user, url, title, "muhahaha new contents!")
end.to change { topic_embed.reload.content_sha1 }
expect(post.cooked).to match(/new contents/) expect(topic_embed.post.cooked).to match(/new contents/)
end end
it "Supports updating the post author" do it "Supports updating the post author" do
new_user = Fabricate(:user) new_user = Fabricate(:user)
post = TopicEmbed.import(new_user, url, title, contents) TopicEmbed.import(new_user, url, title, contents)
expect(post.user).to eq(new_user) topic_embed.reload
expect(post.topic.user).to eq(new_user) expect(topic_embed.post.user).to eq(new_user)
expect(topic_embed.post.topic.user).to eq(new_user)
end end
it "Should leave uppercase Feed Entry URL untouched in content" do it "Should leave uppercase Feed Entry URL untouched in content" do