diff --git a/app/models/site_config.rb b/app/models/site_config.rb index 3fafb9368..bc5a11a27 100644 --- a/app/models/site_config.rb +++ b/app/models/site_config.rb @@ -226,4 +226,9 @@ class SiteConfig < RailsSettings::Base "present" end singleton_class.__send__(:alias_method, :apple_secret, :apple_key) + + # To get default values + def self.get_default(field) + get_field(field).dig(:default) + end end diff --git a/spec/requests/admin/configs_spec.rb b/spec/requests/admin/configs_spec.rb index 5c090ec15..d952b1382 100644 --- a/spec/requests/admin/configs_spec.rb +++ b/spec/requests/admin/configs_spec.rb @@ -347,7 +347,7 @@ RSpec.describe "/admin/config", type: :request do end it "updates logo_png" do - expected_default_image_url = URL.local_image("icon.png") + expected_default_image_url = SiteConfig.get_default(:logo_png) expected_image_url = "https://dummyimage.com/300x300.png" expect do post "/admin/config", params: { site_config: { logo_png: expected_image_url }, @@ -441,7 +441,7 @@ RSpec.describe "/admin/config", type: :request do end it "updates mascot_image_url" do - expected_default_image_url = URL.local_image("mascot.png") + expected_default_image_url = SiteConfig.get_default(:mascot_image_url) expected_image_url = "https://dummyimage.com/300x300.png" expect do post "/admin/config", params: { site_config: { mascot_image_url: expected_image_url }, @@ -457,7 +457,7 @@ RSpec.describe "/admin/config", type: :request do end it "updates the mascot_footer_image_width" do - expected_default_mascot_footer_image_width = 52 + expected_default_mascot_footer_image_width = SiteConfig.get_default(:mascot_footer_image_width) expected_mascot_footer_image_width = 1002 expect(SiteConfig.mascot_footer_image_width).to eq(expected_default_mascot_footer_image_width) @@ -469,7 +469,7 @@ RSpec.describe "/admin/config", type: :request do end it "updates the mascot_footer_image_height" do - expected_default_mascot_footer_image_height = 120 + expected_default_mascot_footer_image_height = SiteConfig.get_default(:mascot_footer_image_height) expected_mascot_footer_image_height = 3002 expect(SiteConfig.mascot_footer_image_height).to eq(expected_default_mascot_footer_image_height) @@ -646,66 +646,75 @@ RSpec.describe "/admin/config", type: :request do describe "Rate Limits and spam" do it "updates rate_limit_follow_count_daily" do + default_value = SiteConfig.get_default(:rate_limit_follow_count_daily) expect do post "/admin/config", params: { site_config: { rate_limit_follow_count_daily: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_follow_count_daily).from(500).to(3) + end.to change(SiteConfig, :rate_limit_follow_count_daily).from(default_value).to(3) end it "updates rate_limit_comment_creation" do + default_value = SiteConfig.get_default(:rate_limit_comment_creation) expect do post "/admin/config", params: { site_config: { rate_limit_comment_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_comment_creation).from(9).to(3) + end.to change(SiteConfig, :rate_limit_comment_creation).from(default_value).to(3) end it "updates rate_limit_published_article_creation" do + default_value = SiteConfig.get_default(:rate_limit_published_article_creation) expect do post "/admin/config", params: { site_config: { rate_limit_published_article_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_published_article_creation).from(9).to(3) + end.to change(SiteConfig, :rate_limit_published_article_creation).from(default_value).to(3) end it "updates rate_limit_published_article_antispam_creation" do + default_value = SiteConfig.get_default(:rate_limit_published_article_antispam_creation) expect do post "/admin/config", params: { site_config: { rate_limit_published_article_antispam_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_published_article_antispam_creation).from(1).to(3) + end.to change(SiteConfig, :rate_limit_published_article_antispam_creation).from(default_value).to(3) end it "updates rate_limit_organization_creation" do + default_value = SiteConfig.get_default(:rate_limit_organization_creation) expect do post "/admin/config", params: { site_config: { rate_limit_organization_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_organization_creation).from(1).to(3) + end.to change(SiteConfig, :rate_limit_organization_creation).from(default_value).to(3) end it "updates rate_limit_image_upload" do + default_value = SiteConfig.get_default(:rate_limit_image_upload) expect do post "/admin/config", params: { site_config: { rate_limit_image_upload: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_image_upload).from(9).to(3) + end.to change(SiteConfig, :rate_limit_image_upload).from(default_value).to(3) end it "updates rate_limit_email_recipient" do + default_value = SiteConfig.get_default(:rate_limit_email_recipient) expect do post "/admin/config", params: { site_config: { rate_limit_email_recipient: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_email_recipient).from(5).to(3) + end.to change(SiteConfig, :rate_limit_email_recipient).from(default_value).to(3) end it "updates rate_limit_user_subscription_creation" do + default_value = SiteConfig.get_default(:rate_limit_user_subscription_creation) expect do post "/admin/config", params: { site_config: { rate_limit_user_subscription_creation: 1 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_user_subscription_creation).from(3).to(1) + end.to change(SiteConfig, :rate_limit_user_subscription_creation).from(default_value).to(1) end it "updates rate_limit_article_update" do + default_value = SiteConfig.get_default(:rate_limit_article_update) expect do post "/admin/config", params: { site_config: { rate_limit_article_update: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_article_update).from(30).to(3) + end.to change(SiteConfig, :rate_limit_article_update).from(default_value).to(3) end it "updates rate_limit_user_update" do @@ -716,31 +725,35 @@ RSpec.describe "/admin/config", type: :request do end it "updates rate_limit_feedback_message_creation" do + default_value = SiteConfig.get_default(:rate_limit_feedback_message_creation) expect do post "/admin/config", params: { site_config: { rate_limit_feedback_message_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_feedback_message_creation).from(5).to(3) + end.to change(SiteConfig, :rate_limit_feedback_message_creation).from(default_value).to(3) end it "updates rate_limit_listing_creation" do + default_value = SiteConfig.get_default(:rate_limit_listing_creation) expect do post "/admin/config", params: { site_config: { rate_limit_listing_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_listing_creation).from(1).to(3) + end.to change(SiteConfig, :rate_limit_listing_creation).from(default_value).to(3) end it "updates rate_limit_reaction_creation" do + default_value = SiteConfig.get_default(:rate_limit_reaction_creation) expect do post "/admin/config", params: { site_config: { rate_limit_reaction_creation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_reaction_creation).from(10).to(3) + end.to change(SiteConfig, :rate_limit_reaction_creation).from(default_value).to(3) end it "updates rate_limit_send_email_confirmation" do + default_value = SiteConfig.get_default(:rate_limit_send_email_confirmation) expect do post "/admin/config", params: { site_config: { rate_limit_send_email_confirmation: 3 }, confirmation: confirmation_message } - end.to change(SiteConfig, :rate_limit_send_email_confirmation).from(2).to(3) + end.to change(SiteConfig, :rate_limit_send_email_confirmation).from(default_value).to(3) end it "updates spam_trigger_terms" do @@ -884,12 +897,7 @@ RSpec.describe "/admin/config", type: :request do describe "Credits" do it "updates the credit prices", :aggregate_failures do - original_prices = { - small: 500, - medium: 400, - large: 300, - xlarge: 250 - } + original_prices = SiteConfig.get_default(:credit_prices_in_cents) SiteConfig.credit_prices_in_cents = original_prices SiteConfig.credit_prices_in_cents.each_key do |size|