aboutsummaryrefslogtreecommitdiffstats
path: root/spec/requests/refinery/blog/posts_spec.rb
diff options
context:
space:
mode:
authorJamie Winsor <jamie@enmasse.com>2011-09-04 03:20:51 -0700
committerJamie Winsor <jamie@enmasse.com>2011-09-04 14:35:03 -0700
commit7903bdfed26f085f6d07d104ac458bc4319b1e32 (patch)
treefd950e2c1d1d234e0e6a590d24296a4a396798a3 /spec/requests/refinery/blog/posts_spec.rb
parent40be4f71ee425ee55ecedea96ff2b0dc510d71db (diff)
downloadrefinerycms-blog-7903bdfed26f085f6d07d104ac458bc4319b1e32.tar.gz
refinerycms-blog-7903bdfed26f085f6d07d104ac458bc4319b1e32.tar.bz2
refinerycms-blog-7903bdfed26f085f6d07d104ac458bc4319b1e32.zip
refactor factories and add #show tests for posts controller
Do not want to cache classes, but do want to reload models after factory girl: http://groups.google.com/group/factory_girl/browse_thread/thread/daa24556d90c31fc http://stackoverflow.com/questions/5145165/associationtypemismatch-and-factorygirl rails_autolink was removed from Rails 3.1 and abstracted to an external gem fix display author name and post time on comment show fix namespace for thanking and moderated flash notices
Diffstat (limited to 'spec/requests/refinery/blog/posts_spec.rb')
-rw-r--r--spec/requests/refinery/blog/posts_spec.rb61
1 files changed, 54 insertions, 7 deletions
diff --git a/spec/requests/refinery/blog/posts_spec.rb b/spec/requests/refinery/blog/posts_spec.rb
index eba6131..4017d03 100644
--- a/spec/requests/refinery/blog/posts_spec.rb
+++ b/spec/requests/refinery/blog/posts_spec.rb
@@ -5,36 +5,83 @@ module Refinery
login_refinery_user
context "when has blog posts" do
- let(:blog_post) { FactoryGirl.create(:blog_post, :title => "Refinery CMS blog post") }
+ let!(:blog_post) { FactoryGirl.create(:blog_post, :title => "Refinery CMS blog post") }
it "should display blog post" do
visit blog_post_path(blog_post)
- page.should have_content("Refinery CMS blog post")
+
+ page.should have_content(blog_post.title)
end
it "should display the blog rss feed" do
get blog_rss_feed_path
+
response.should be_success
response.content_type.should eq("application/rss+xml")
end
end
-
+
describe "list tagged posts" do
context "when has tagged blog posts" do
before(:each) do
@tag_name = "chicago"
@blog_post = FactoryGirl.create(:blog_post,
- :title => "I Love my city",
- :tag_list => @tag_name)
- tag = ::Refinery::BlogPost.tag_counts_on(:tags).first
- visit tagged_posts_path(tag.id, @tag_name.parameterize)
+ :title => "I Love my city",
+ :tag_list => @tag_name)
+ @tag = ::Refinery::BlogPost.tag_counts_on(:tags).first
end
it "should have one tagged post" do
+ visit tagged_posts_path(@tag.id, @tag_name.parameterize)
+
page.should have_content(@tag_name)
page.should have_content(@blog_post.title)
end
end
end
+
+ describe "#show" do
+ context "when has no comments" do
+ let!(:blog_post) { FactoryGirl.create(:blog_post) }
+
+ it "should display the blog post" do
+ visit blog_post_path(blog_post)
+
+ page.should have_content(blog_post.title)
+ page.should have_content(blog_post.body)
+ end
+ end
+
+ context "when has approved comments" do
+ let!(:approved_comment) { FactoryGirl.create(:approved_comment) }
+
+ it "should display the comments" do
+ visit blog_post_path(approved_comment.post)
+
+ page.should have_content(approved_comment.body)
+ page.should have_content("Posted by #{approved_comment.name}")
+ end
+ end
+
+ context "when has rejected comments" do
+ let!(:rejected_comment) { FactoryGirl.create(:rejected_comment) }
+
+ it "should not display the comments" do
+ visit blog_post_path(rejected_comment.post)
+
+ page.should_not have_content(rejected_comment.body)
+ end
+ end
+
+ context "when has new comments" do
+ let!(:blog_comment) { FactoryGirl.create(:blog_comment) }
+
+ it "should not display the comments" do
+ visit blog_post_path(blog_comment.post)
+
+ page.should_not have_content(blog_comment.body)
+ end
+ end
+ end
end
end