Add rake to remove deprecated settings
This commit is contained in:
@@ -2,38 +2,57 @@ namespace :settings do
|
||||
|
||||
desc "Changes Setting key per_page_code for per_page_code_head"
|
||||
task per_page_code_migration: :environment do
|
||||
per_page_code_setting = Setting.where(key: 'per_page_code').first
|
||||
per_page_code = Setting.where(key: "per_page_code").first
|
||||
per_page_code_head = Setting.where(key: "per_page_code_head").first
|
||||
|
||||
Setting['per_page_code_head'] = per_page_code_setting&.value.to_s if Setting.where(key: 'per_page_code_head').first.blank?
|
||||
per_page_code_setting.destroy if per_page_code_setting.present?
|
||||
Setting["per_page_code_head"] = per_page_code&.value.to_s if per_page_code_head.blank?
|
||||
per_page_code.destroy if per_page_code.present?
|
||||
end
|
||||
|
||||
desc "Create new Attached Documents feature setting"
|
||||
task create_attached_documents_setting: :environment do
|
||||
Setting['feature.allow_attached_documents'] = true
|
||||
Setting["feature.allow_attached_documents"] = true
|
||||
end
|
||||
|
||||
desc "Enable recommendations settings"
|
||||
task enable_recommendations: :environment do
|
||||
Setting['feature.user.recommendations'] = true
|
||||
Setting['feature.user.recommendations_on_debates'] = true
|
||||
Setting['feature.user.recommendations_on_proposals'] = true
|
||||
Setting["feature.user.recommendations"] = true
|
||||
Setting["feature.user.recommendations_on_debates"] = true
|
||||
Setting["feature.user.recommendations_on_proposals"] = true
|
||||
end
|
||||
|
||||
desc "Enable Help page"
|
||||
task enable_help_page: :environment do
|
||||
Setting['feature.help_page'] = true
|
||||
Setting["feature.help_page"] = true
|
||||
end
|
||||
|
||||
desc "Enable Featured proposals"
|
||||
task enable_featured_proposals: :environment do
|
||||
Setting['feature.featured_proposals'] = true
|
||||
Setting['featured_proposals_number'] = 3
|
||||
Setting["feature.featured_proposals"] = true
|
||||
Setting["featured_proposals_number"] = 3
|
||||
end
|
||||
|
||||
desc "Create new period to calculate hot_score"
|
||||
task create_hot_score_period_setting: :environment do
|
||||
Setting['hot_score_period_in_days'] = 31
|
||||
Setting["hot_score_period_in_days"] = 31
|
||||
end
|
||||
|
||||
desc "Remove deprecated settings"
|
||||
task remove_deprecated_settings: :environment do
|
||||
deprecated_keys = [
|
||||
"place_name",
|
||||
"banner-style.banner-style-one",
|
||||
"banner-style.banner-style-two",
|
||||
"banner-style.banner-style-three",
|
||||
"banner-img.banner-img-one",
|
||||
"banner-img.banner-img-two",
|
||||
"banner-img.banner-img-three",
|
||||
"verification_offices_url"
|
||||
]
|
||||
|
||||
deprecated_keys.each do |key|
|
||||
Setting.where(key: key).first&.destroy
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,6 +1,39 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "Settings Rake" do
|
||||
describe Setting do
|
||||
|
||||
context "Remove deprecated settings" do
|
||||
|
||||
let :run_remove_deprecated_settings_task do
|
||||
Rake::Task["settings:remove_deprecated_settings"].reenable
|
||||
Rake.application.invoke_task "settings:remove_deprecated_settings"
|
||||
end
|
||||
|
||||
before do
|
||||
Setting.create(key: "place_name", value: "City")
|
||||
Setting.create(key: "banner-style.banner-style-one", value: "Style one")
|
||||
Setting.create(key: "banner-style.banner-style-two", value: "Style two")
|
||||
Setting.create(key: "banner-style.banner-style-three", value: "Style three")
|
||||
Setting.create(key: "banner-img.banner-img-one", value: "Image 1")
|
||||
Setting.create(key: "banner-img.banner-img-two", value: "Image 2")
|
||||
Setting.create(key: "banner-img.banner-img-three", value: "Image 3")
|
||||
Setting.create(key: "verification_offices_url", value: "http://offices.url")
|
||||
Setting.create(key: "not_deprecated", value: "Setting not deprecated")
|
||||
run_remove_deprecated_settings_task
|
||||
end
|
||||
|
||||
it "Rake only removes deprecated settings" do
|
||||
expect(Setting.where(key: "place_name").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-one").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-two").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-three").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-one").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-two").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-three").count).to eq(0)
|
||||
expect(Setting.where(key: "verification_offices_url").count).to eq(0)
|
||||
expect(Setting.where(key: "not_deprecated").count).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#per_page_code_migration" do
|
||||
|
||||
|
||||
Reference in New Issue
Block a user