discourse/spec/requests/site_controller_spec.rb

94 lines
3.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require 'rails_helper'
describe SiteController do
2018-11-14 15:03:02 +08:00
describe '#basic_info' do
it 'is visible always even for sites requiring login' do
2018-11-14 15:03:02 +08:00
upload = Fabricate(:upload)
2018-11-14 15:03:02 +08:00
SiteSetting.login_required = true
SiteSetting.title = "Hammer Time"
2017-07-28 09:20:09 +08:00
SiteSetting.site_description = "A time for Hammer"
2018-11-14 15:03:02 +08:00
SiteSetting.logo = upload
SiteSetting.logo_small = upload
SiteSetting.apple_touch_icon = upload
SiteSetting.mobile_logo = upload
2018-10-09 07:03:05 +08:00
Theme.clear_default!
get "/site/basic-info.json"
json = JSON.parse(response.body)
2018-11-14 15:03:02 +08:00
expected_url = UrlHelper.absolute(upload.url)
expect(json["title"]).to eq("Hammer Time")
expect(json["description"]).to eq("A time for Hammer")
2018-11-14 15:03:02 +08:00
expect(json["logo_url"]).to eq(expected_url)
expect(json["apple_touch_icon_url"]).to eq(expected_url)
expect(json["logo_small_url"]).to eq(expected_url)
expect(json["mobile_logo_url"]).to eq(expected_url)
expect(json["header_primary_color"]).to eq("333333")
expect(json["header_background_color"]).to eq("ffffff")
end
end
2017-03-10 21:16:00 +08:00
2018-11-14 15:03:02 +08:00
describe '#statistics' do
2017-03-10 21:16:00 +08:00
it 'is visible for sites requiring login' do
SiteSetting.login_required = true
SiteSetting.share_anonymized_statistics = true
get "/site/statistics.json"
2017-03-10 21:16:00 +08:00
json = JSON.parse(response.body)
expect(response.status).to eq(200)
2017-03-10 21:16:00 +08:00
expect(json["topic_count"]).to be_present
expect(json["post_count"]).to be_present
expect(json["user_count"]).to be_present
expect(json["topics_7_days"]).to be_present
expect(json["topics_30_days"]).to be_present
expect(json["posts_7_days"]).to be_present
expect(json["posts_30_days"]).to be_present
expect(json["users_7_days"]).to be_present
expect(json["users_30_days"]).to be_present
expect(json["active_users_7_days"]).to be_present
expect(json["active_users_30_days"]).to be_present
expect(json["like_count"]).to be_present
expect(json["likes_7_days"]).to be_present
expect(json["likes_30_days"]).to be_present
end
it 'is not visible if site setting share_anonymized_statistics is disabled' do
SiteSetting.share_anonymized_statistics = false
get "/site/statistics.json"
2017-03-10 21:16:00 +08:00
expect(response).to redirect_to '/'
end
end
2018-07-18 18:57:43 +08:00
describe '.selectable_avatars' do
before do
SiteSetting.selectable_avatars = "https://www.discourse.org\nhttps://meta.discourse.org"
end
it 'returns empty array when selectable avatars is disabled' do
SiteSetting.selectable_avatars_enabled = false
get "/site/selectable-avatars.json"
json = JSON.parse(response.body)
expect(response.status).to eq(200)
expect(json).to eq([])
end
it 'returns an array when selectable avatars is enabled' do
SiteSetting.selectable_avatars_enabled = true
get "/site/selectable-avatars.json"
json = JSON.parse(response.body)
expect(response.status).to eq(200)
expect(json).to contain_exactly("https://www.discourse.org", "https://meta.discourse.org")
end
end
end