refactor(Facet): to column 🚀

This commit is contained in:
mfo 2024-08-19 14:34:36 +02:00
parent b910705353
commit dba6f9b3aa
No known key found for this signature in database
GPG key ID: 7CE3E1F5B794A8EC
22 changed files with 203 additions and 208 deletions

View file

@ -1,5 +1,5 @@
describe Instructeurs::ColumnFilterComponent, type: :component do
let(:component) { described_class.new(procedure:, procedure_presentation:, statut:, facet:) }
let(:component) { described_class.new(procedure:, procedure_presentation:, statut:, column:) }
let(:instructeur) { create(:instructeur) }
let(:procedure) { create(:procedure, instructeurs: [instructeur]) }
@ -10,40 +10,40 @@ describe Instructeurs::ColumnFilterComponent, type: :component do
allow(component).to receive(:current_instructeur).and_return(instructeur)
end
describe ".filterable_fields_options" do
describe ".filterable_columns_options" do
context 'filders' do
let(:facet) { nil }
let(:column) { nil }
let(:included_displayable_field) do
[
Facet.new(label: 'email', table: 'user', column: 'email'),
Facet.new(label: "depose_since", table: "self", column: "depose_since", virtual: true)
Column.new(label: 'email', table: 'user', column: 'email'),
Column.new(label: "depose_since", table: "self", column: "depose_since", virtual: true)
]
end
before { allow(procedure).to receive(:facets).and_return(included_displayable_field) }
before { allow(procedure).to receive(:columns).and_return(included_displayable_field) }
subject { component.filterable_fields_options }
subject { component.filterable_columns_options }
it { is_expected.to eq([["email", "user/email"], ["depose_since", "self/depose_since"]]) }
end
end
describe '.options_for_select_of_field' do
subject { component.options_for_select_of_field }
describe '.options_for_select_of_column' do
subject { component.options_for_select_of_column }
context "facet is groupe_instructeur" do
let(:facet) { double("Facet", scope: nil, table: 'groupe_instructeur') }
context "column is groupe_instructeur" do
let(:column) { double("Column", scope: nil, table: 'groupe_instructeur') }
let!(:gi_2) { instructeur.groupe_instructeurs.create(label: 'gi2', procedure:) }
let!(:gi_3) { instructeur.groupe_instructeurs.create(label: 'gi3', procedure: create(:procedure)) }
it { is_expected.to eq([['défaut', procedure.defaut_groupe_instructeur.id], ['gi2', gi_2.id]]) }
end
context 'when facet is dropdown' do
context 'when column is dropdown' do
let(:types_de_champ_public) { [{ type: :drop_down_list, libelle: 'Votre ville', options: ['Paris', 'Lyon', 'Marseille'] }] }
let(:procedure) { create(:procedure, :published, types_de_champ_public:) }
let(:drop_down_stable_id) { procedure.active_revision.types_de_champ.first.stable_id }
let(:facet) { Facet.new(table: 'type_de_champ', scope: nil, column: drop_down_stable_id) }
let(:column) { Column.new(table: 'type_de_champ', scope: nil, column: drop_down_stable_id) }
it 'find most recent tdc' do
is_expected.to eq(['Paris', 'Lyon', 'Marseille'])

View file

@ -6,14 +6,14 @@ describe Instructeurs::ColumnPickerComponent, type: :component do
let(:assign_to) { create(:assign_to, procedure: procedure, instructeur: instructeur) }
let(:procedure_presentation) { create(:procedure_presentation, assign_to: assign_to) }
describe "#displayable_fields_for_select" do
let(:default_user_email) { Facet.new(label: 'email', table: 'user', column: 'email') }
let(:excluded_displayable_field) { Facet.new(label: "label1", table: "table1", column: "column1", virtual: true) }
describe "#displayable_columns_for_select" do
let(:default_user_email) { Column.new(label: 'email', table: 'user', column: 'email') }
let(:excluded_displayable_field) { Column.new(label: "label1", table: "table1", column: "column1", virtual: true) }
subject { component.displayable_fields_for_select }
subject { component.displayable_columns_for_select }
before do
allow(procedure).to receive(:facets).and_return([
allow(procedure).to receive(:columns).and_return([
default_user_email,
excluded_displayable_field
])