aboutsummaryrefslogtreecommitdiffstats
path: root/spec/features/refinery/blog/admin/comments_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/refinery/blog/admin/comments_spec.rb')
-rw-r--r--spec/features/refinery/blog/admin/comments_spec.rb121
1 files changed, 121 insertions, 0 deletions
diff --git a/spec/features/refinery/blog/admin/comments_spec.rb b/spec/features/refinery/blog/admin/comments_spec.rb
new file mode 100644
index 0000000..08fe9df
--- /dev/null
+++ b/spec/features/refinery/blog/admin/comments_spec.rb
@@ -0,0 +1,121 @@
+require "spec_helper"
+
+module Refinery
+ module Blog
+ module Admin
+ describe Comment do
+ refinery_login_with :refinery_user
+
+ describe "#index" do
+ context "when has no new unapproved comments" do
+ before do
+ subject.class.delete_all
+ visit refinery.blog_admin_comments_path
+ end
+
+ it "should list no comments" do
+ visit refinery.blog_admin_comments_path
+
+ page.should have_content('There are no new comments')
+ end
+ end
+ context "when has new unapproved comments" do
+ let!(:blog_comment) { FactoryGirl.create(:blog_comment) }
+ before { visit refinery.blog_admin_comments_path }
+
+ it "should list comments" do
+ page.should have_content(blog_comment.body)
+ page.should have_content(blog_comment.name)
+ end
+
+ it "should allow me to approve a comment" do
+ click_link "Approve this comment"
+
+ page.should have_content("has been approved")
+ end
+
+ it "should allow me to reject a comment" do
+ click_link "Reject this comment"
+
+ page.should have_content("has been rejected")
+ end
+ end
+ end
+
+ describe "#approved" do
+ context "when has no approved comments" do
+ before do
+ subject.class.delete_all
+ visit refinery.approved_blog_admin_comments_path
+ end
+
+ it "should list no comments" do
+ page.should have_content('There are no approved comments')
+ end
+ end
+ context "when has approved comments" do
+ let!(:blog_comment) do
+ FactoryGirl.create(:blog_comment, :state => 'approved')
+ end
+ before { visit refinery.approved_blog_admin_comments_path }
+
+ it "should list comments" do
+ page.should have_content(blog_comment.body)
+ page.should have_content(blog_comment.name)
+ end
+
+ it "should allow me to reject a comment" do
+ click_link "Reject this comment"
+
+ page.should have_content("has been rejected")
+ end
+ end
+ end
+
+ describe "#rejected" do
+ context "when has no rejected comments" do
+ before do
+ subject.class.delete_all
+ visit refinery.rejected_blog_admin_comments_path
+ end
+
+ it "should list no comments" do
+ page.should have_content('There are no rejected comments')
+ end
+ end
+ context "when has rejected comments" do
+ let!(:blog_comment) do
+ FactoryGirl.create(:blog_comment, :state => 'rejected')
+ end
+ before { visit refinery.rejected_blog_admin_comments_path }
+
+ it "should list comments" do
+ page.should have_content(blog_comment.body)
+ page.should have_content(blog_comment.name)
+ end
+
+ it "should allow me to approve a comment" do
+ click_link "Approve this comment"
+
+ page.should have_content("has been approved")
+ end
+ end
+ end
+
+ describe "#show" do
+ let!(:blog_comment) { FactoryGirl.create(:blog_comment) }
+ before { visit refinery.blog_admin_comment_path(blog_comment) }
+ it "should display the comment" do
+ page.should have_content(blog_comment.body)
+ page.should have_content(blog_comment.name)
+ end
+ it "should allow me to approve the comment" do
+ click_link "Approve this comment"
+
+ page.should have_content("has been approved")
+ end
+ end
+ end
+ end
+ end
+end