discourse/spec/controllers/groups_controller_spec.rb
Robin Ward 669247977b FEATURE: Show the posts count on the groups page. It seems a bit odd
that it uses a new AJAX call, but I wanted to keep the count separate
from the group object itself.
2014-02-12 14:01:36 -05:00

65 lines
2.0 KiB
Ruby

require 'spec_helper'
describe GroupsController do
let(:group) { Fabricate(:group) }
describe 'show' do
it "ensures the group can be seen" do
Guardian.any_instance.expects(:can_see?).with(group).returns(false)
xhr :get, :show, id: group.name
response.should_not be_success
end
it "responds with JSON" do
Guardian.any_instance.expects(:can_see?).with(group).returns(true)
xhr :get, :show, id: group.name
response.should be_success
::JSON.parse(response.body)['basic_group']['id'].should == group.id
end
end
describe "posts_count" do
it "ensures the group can be seen" do
Guardian.any_instance.expects(:can_see?).with(group).returns(false)
xhr :get, :posts_count, group_id: group.name
response.should_not be_success
end
it "performs the query and responds with JSON" do
Guardian.any_instance.expects(:can_see?).with(group).returns(true)
Group.any_instance.expects(:posts_for).returns(Group.none)
xhr :get, :posts_count, group_id: group.name
response.should be_success
end
end
describe "posts" do
it "ensures the group can be seen" do
Guardian.any_instance.expects(:can_see?).with(group).returns(false)
xhr :get, :posts, group_id: group.name
response.should_not be_success
end
it "calls `posts_for` and responds with JSON" do
Guardian.any_instance.expects(:can_see?).with(group).returns(true)
Group.any_instance.expects(:posts_for).returns(Group.none)
xhr :get, :posts, group_id: group.name
response.should be_success
end
end
describe "members" do
it "ensures the group can be seen" do
Guardian.any_instance.expects(:can_see?).with(group).returns(false)
xhr :get, :members, group_id: group.name
response.should_not be_success
end
it "calls `posts_for` and responds with JSON" do
Guardian.any_instance.expects(:can_see?).with(group).returns(true)
xhr :get, :posts, group_id: group.name
response.should be_success
end
end
end