diaspora/spec/presenters/statistics_presenter_spec.rb
2015-02-27 16:30:51 +01:00

78 lines
2.4 KiB
Ruby

require 'spec_helper'
describe StatisticsPresenter do
before do
@presenter = StatisticsPresenter.new
end
describe '#as_json' do
it 'works' do
expect(@presenter.as_json).to be_present
expect(@presenter.as_json).to be_a Hash
end
end
describe '#statistics contents' do
before do
AppConfig.privacy.statistics.user_counts = false
AppConfig.privacy.statistics.post_counts = false
AppConfig.privacy.statistics.comment_counts = false
end
it 'provides generic pod data in json' do
expect(@presenter.as_json).to eq({
"name" => AppConfig.settings.pod_name,
"network" => "Diaspora",
"version" => AppConfig.version_string,
"registrations_open" => AppConfig.settings.enable_registrations?,
"services"=> ["facebook",],
"facebook" => true,
"tumblr" => false,
"twitter" => false,
"wordpress" => false,
})
end
context 'when services are enabled' do
before do
AppConfig.privacy.statistics.user_counts = true
AppConfig.privacy.statistics.post_counts = true
AppConfig.privacy.statistics.comment_counts = true
AppConfig.services = {
"facebook" => {"enable" => true},
"twitter" => {"enable" => true},
"wordpress" => {"enable" => false},
"tumblr" => {"enable" => false}
}
end
it 'provides generic pod data and counts in json' do
expect(@presenter.as_json).to eq({
"name" => AppConfig.settings.pod_name,
"network" => "Diaspora",
"version" => AppConfig.version_string,
"registrations_open" => AppConfig.settings.enable_registrations?,
"total_users" => User.active.count,
"active_users_halfyear" => User.halfyear_actives.count,
"active_users_monthly" => User.monthly_actives.count,
"local_posts" => @presenter.local_posts,
"local_comments" => @presenter.local_comments,
"services" => ["twitter","facebook"],
"facebook" => true,
"twitter" => true,
"tumblr" => false,
"wordpress" => false
})
end
end
context 'when registrations are closed' do
before do
AppConfig.settings.enable_registrations = false
end
it 'should mark open_registrations to be false' do
expect(@presenter.open_registrations?).to be false
end
end
end
end