From 57a136c86177527518aa84eec7a8b84de29ecef8 Mon Sep 17 00:00:00 2001 From: Frederic Merizen Date: Mon, 10 Dec 2018 19:47:52 +0100 Subject: [PATCH 1/2] Make champ PJ generally available --- app/services/types_de_champ_service.rb | 1 - config/features.rb | 10 ++++++++-- lib/tasks/2018_05_21_cerfa_to_pj.rake | 1 - spec/models/administrateur_spec.rb | 6 +++--- spec/services/types_de_champ_service_spec.rb | 16 +--------------- 5 files changed, 12 insertions(+), 22 deletions(-) diff --git a/app/services/types_de_champ_service.rb b/app/services/types_de_champ_service.rb index 43dd72e4b..43a28b5ed 100644 --- a/app/services/types_de_champ_service.rb +++ b/app/services/types_de_champ_service.rb @@ -2,7 +2,6 @@ class TypesDeChampService include Rails.application.routes.url_helpers TOGGLES = { - TypeDeChamp.type_champs.fetch(:piece_justificative) => :champ_pj?, TypeDeChamp.type_champs.fetch(:siret) => :champ_siret?, TypeDeChamp.type_champs.fetch(:integer_number) => :champ_integer_number? } diff --git a/config/features.rb b/config/features.rb index 5cb16bc79..48cc54e1d 100644 --- a/config/features.rb +++ b/config/features.rb @@ -7,8 +7,6 @@ Flipflop.configure do strategy :default group :champs do - feature :champ_pj, - title: "Champ pièce justificative" feature :champ_siret, title: "Champ SIRET" feature :champ_integer_number, @@ -28,4 +26,12 @@ Flipflop.configure do feature :pre_maintenance_mode feature :maintenance_mode end + + if Rails.env.test? + # It would be nicer to configure this in administrateur_spec.rb in #feature_enabled?, + # but that results in a FrozenError: can't modify frozen Hash + + feature :test_a + feature :test_b + end end diff --git a/lib/tasks/2018_05_21_cerfa_to_pj.rake b/lib/tasks/2018_05_21_cerfa_to_pj.rake index 59406195a..7d0995d40 100644 --- a/lib/tasks/2018_05_21_cerfa_to_pj.rake +++ b/lib/tasks/2018_05_21_cerfa_to_pj.rake @@ -4,7 +4,6 @@ namespace :'2018_05_21_cerfa_to_pj' do dossiers.group_by(&:procedure).each do |procedure, dossiers| if !procedure.types_de_champ.find_by(libelle: 'CERFA') - procedure.administrateur.enable_feature(:champ_pj) type_de_champ = procedure.types_de_champ.create( type_champ: 'piece_justificative', libelle: 'CERFA' diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 372de835a..0bfb1aca3 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -65,11 +65,11 @@ describe Administrateur, type: :model do let(:administrateur) { create(:administrateur) } before do - administrateur.enable_feature(:champ_pj) + administrateur.enable_feature(:test_a) end - it { expect(administrateur.feature_enabled?(:champ_siret)).to be_falsey } - it { expect(administrateur.feature_enabled?(:champ_pj)).to be_truthy } + it { expect(administrateur.feature_enabled?(:test_b)).to be_falsey } + it { expect(administrateur.feature_enabled?(:test_a)).to be_truthy } end describe "#password_complexity" do diff --git a/spec/services/types_de_champ_service_spec.rb b/spec/services/types_de_champ_service_spec.rb index 6d8714352..48f914d37 100644 --- a/spec/services/types_de_champ_service_spec.rb +++ b/spec/services/types_de_champ_service_spec.rb @@ -107,20 +107,6 @@ describe TypesDeChampService do subject { service.options } - context "when the champ_pj is enabled" do - before do - Flipflop::FeatureSet.current.test!.switch!(:champ_pj, true) - end - - it { is_expected.to include(pj_option) } - end - - context "when the champ_pj is disabled" do - before do - Flipflop::FeatureSet.current.test!.switch!(:champ_pj, false) - end - - it { is_expected.not_to include(pj_option) } - end + it { is_expected.to include(pj_option) } end end From 97eb72a047ead8dae8b49b0dd3a8828ff1bd5fe3 Mon Sep 17 00:00:00 2001 From: Frederic Merizen Date: Mon, 10 Dec 2018 20:04:06 +0100 Subject: [PATCH 2/2] Cleanup: remove champ_pj feature flag --- ...0181210185634_remove_champ_pj_feature.rake | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/tasks/deployment/20181210185634_remove_champ_pj_feature.rake diff --git a/lib/tasks/deployment/20181210185634_remove_champ_pj_feature.rake b/lib/tasks/deployment/20181210185634_remove_champ_pj_feature.rake new file mode 100644 index 000000000..086f6553e --- /dev/null +++ b/lib/tasks/deployment/20181210185634_remove_champ_pj_feature.rake @@ -0,0 +1,20 @@ +namespace :after_party do + desc 'Deployment task: remove_champ_pj_feature' + task remove_champ_pj_feature: :environment do + rake_puts "Running deploy task 'remove_champ_pj_feature'" + + Administrateur.find_by_sql( + <<~SQL + SELECT administrateurs.* + FROM administrateurs, lateral jsonb_each(features) + WHERE key = 'champ_pj' + GROUP BY id + SQL + ).each do |admin| + admin.features.delete('champ_pj') + admin.save + end + + AfterParty::TaskRecord.create version: '20181210185634' + end +end