require File.dirname(__FILE__) + '/test_helper' class CommentsTest < ActiveSupport::TestCase def setup login_api end should 'not list comments if user has no permission to view the source article' do person = fast_create(Person) article = fast_create(Article, :profile_id => person.id, :name => "Some thing", :published => false) assert !article.published? get "/api/v1/articles/#{article.id}/comments?#{params.to_query}" assert_equal 403, last_response.status end should 'not return comment if user has no permission to view the source article' do person = fast_create(Person) article = fast_create(Article, :profile_id => person.id, :name => "Some thing", :published => false) comment = article.comments.create!(:body => "another comment", :author => user.person) assert !article.published? get "/api/v1/articles/#{article.id}/comments/#{comment.id}?#{params.to_query}" assert_equal 403, last_response.status end should 'not comment a article if user has no permission to view it' do person = fast_create(Person) article = fast_create(Article, :profile_id => person.id, :name => "Some thing", :published => false) assert !article.published? post "/api/v1/articles/#{article.id}/comments?#{params.to_query}" assert_equal 403, last_response.status end should 'return comments of an article' do article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") article.comments.create!(:body => "some comment", :author => user.person) article.comments.create!(:body => "another comment", :author => user.person) get "/api/v1/articles/#{article.id}/comments?#{params.to_query}" json = JSON.parse(last_response.body) assert_equal 2, json["comments"].length end end