Add rake to remove deprecated settings

This commit is contained in:
decabeza
2019-03-13 15:39:58 +01:00
parent b31b65f246
commit cfad56b872
2 changed files with 64 additions and 12 deletions

View File

@@ -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

View File

@@ -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