diff options
author | Jamie Winsor <jamie@enmasse.com> | 2011-09-04 03:20:51 -0700 |
---|---|---|
committer | Jamie Winsor <jamie@enmasse.com> | 2011-09-04 14:35:03 -0700 |
commit | 7903bdfed26f085f6d07d104ac458bc4319b1e32 (patch) | |
tree | fd950e2c1d1d234e0e6a590d24296a4a396798a3 /spec/requests/refinery/blog | |
parent | 40be4f71ee425ee55ecedea96ff2b0dc510d71db (diff) | |
download | refinerycms-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')
-rw-r--r-- | spec/requests/refinery/blog/posts_spec.rb | 61 |
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 |