Put the piece justificative champ behind a feature flag

This commit is contained in:
gregoirenovel 2018-02-14 18:07:15 +01:00
parent 071c459011
commit 93d8470321
6 changed files with 43 additions and 1 deletions

View file

@ -0,0 +1,11 @@
module TypeDeChampHelper
def tdc_options(current_administrateur)
tdcs = TypeDeChamp.type_de_champs_list_fr
if !current_administrateur.id.in?(Features.champ_pj_allowed_for_admin_ids)
tdcs.reject! { |tdc| tdc.last == "piece_justificative" }
end
tdcs
end
end

View file

@ -8,7 +8,8 @@
.form-group.type
%h4 Type
= ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, { class: 'form-control type-champ' }
- tdc_options = tdc_options(current_administrateur)
= ff.select :type_champ, tdc_options, {}, { class: 'form-control type-champ' }
.form-group.description
%h4 Description

View file

@ -1,2 +1,4 @@
remote_storage: false
weekly_overview: false
champ_pj_allowed_for_admin_ids:
- 0

View file

@ -0,0 +1,22 @@
require 'rails_helper'
RSpec.describe TypeDeChampHelper, type: :helper do
describe ".tdc_options" do
let(:current_administrateur) { create(:administrateur) }
let(:pj_option) { ["Pièce justificative", "piece_justificative"] }
subject { tdc_options(current_administrateur) }
context "when the champ_pj_allowed_for_admin_id matches the current_administrateur's id" do
before { allow(Features).to receive(:champ_pj_allowed_for_admin_ids).and_return([current_administrateur.id]) }
it { is_expected.to include(pj_option) }
end
context "when the champ_pj_allowed_for_admin_id does not match the current_administrateur's id" do
before { allow(Features).to receive(:champ_pj_allowed_for_admin_ids).and_return([1000]) }
it { is_expected.not_to include(pj_option) }
end
end
end

View file

@ -3,6 +3,9 @@ require 'spec_helper'
describe 'admin/types_de_champ/show.html.haml', type: :view do
let(:procedure) { create(:procedure) }
# FIXME: delete this when support for pj champ is generalized
before { allow(view).to receive(:current_administrateur).and_return(create(:administrateur)) }
describe 'fields sorted' do
let(:first_libelle) { 'salut la compagnie' }
let(:last_libelle) { 'je suis bien sur la page' }

View file

@ -3,6 +3,9 @@ require 'spec_helper'
describe 'admin/types_de_champ/show.html.haml', type: :view do
let(:procedure) { create(:procedure) }
# FIXME: delete this when support for pj champ is generalized
before { allow(view).to receive(:current_administrateur).and_return(create(:administrateur)) }
describe 'fields sorted' do
let(:first_libelle) { 'salut la compagnie' }
let(:last_libelle) { 'je suis bien sur la page' }