From 1160abefc8907c58047f8c73056d8f393f192657 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 6 May 2024 18:24:19 +0200 Subject: [PATCH 01/10] chore: add context classes --- .rubocop.yml | 5 ++++- .../create_override_customization_context.rb | 16 ++++++++++++++++ .../delete_override_customization_context.rb | 16 ++++++++++++++++ .../update_override_customization_context.rb | 17 +++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/create_override_customization_context.rb create mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/delete_override_customization_context.rb create mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/update_override_customization_context.rb diff --git a/.rubocop.yml b/.rubocop.yml index 839868764..ed8d7cc06 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -269,9 +269,12 @@ Layout/LineLength: - 'packages/forest_admin_agent/lib/forest_admin_agent/http/forest_admin_api_requester.rb' - 'packages/forest_admin_agent/lib/forest_admin_agent/routes/resources/list.rb' - 'packages/forest_admin_agent/lib/forest_admin_agent/services/permissions.rb' + - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/create_override_customization_context.rb' + - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/update_override_customization_context.rb' + - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/delete_override_customization_context.rb' + - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/publication/publication_datasource_decorator.rb' - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/relation/relation_collection_decorator.rb' - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/sort/sort_collection_decorator.rb' - - 'packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/publication/publication_datasource_decorator.rb' - 'packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/query/condition_tree/condition_tree_factory.rb' - 'packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/utils/collection.rb' - 'packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/query/filter_factory.rb' diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/create_override_customization_context.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/create_override_customization_context.rb new file mode 100644 index 000000000..ab9c28d54 --- /dev/null +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/create_override_customization_context.rb @@ -0,0 +1,16 @@ +module ForestAdminDatasourceCustomizer + module Decorators + module Override + module Context + class CreateOverrideCustomizationContext < ForestAdminDatasourceCustomizer::Context::CollectionCustomizationContext + attr_reader :data + + def initialize(collection, caller, data) + super(collection, caller) + @data = data + end + end + end + end + end +end diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/delete_override_customization_context.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/delete_override_customization_context.rb new file mode 100644 index 000000000..178d37644 --- /dev/null +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/delete_override_customization_context.rb @@ -0,0 +1,16 @@ +module ForestAdminDatasourceCustomizer + module Decorators + module Override + module Context + class DeleteOverrideCustomizationContext < ForestAdminDatasourceCustomizer::Context::CollectionCustomizationContext + attr_reader :filter + + def initialize(collection, caller, filter) + super(collection, caller) + @filter = filter + end + end + end + end + end +end diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/update_override_customization_context.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/update_override_customization_context.rb new file mode 100644 index 000000000..69257fb5c --- /dev/null +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/context/update_override_customization_context.rb @@ -0,0 +1,17 @@ +module ForestAdminDatasourceCustomizer + module Decorators + module Override + module Context + class UpdateOverrideCustomizationContext < ForestAdminDatasourceCustomizer::Context::CollectionCustomizationContext + attr_reader :filter, :patch + + def initialize(collection, caller, filter, patch) + super(collection, caller) + @filter = filter + @patch = patch + end + end + end + end + end +end From 97617eb27ea1218699b15377ab53fb6980b4a080 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 6 May 2024 18:26:53 +0200 Subject: [PATCH 02/10] feat(override): set up decorator --- .../decorators/override/handler.rb | 11 +++++++ .../override/override_collection_decorator.rb | 30 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb create mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb new file mode 100644 index 000000000..c5b9641aa --- /dev/null +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb @@ -0,0 +1,11 @@ +module ForestAdminDatasourceCustomizer + module Decorators + module Override + class Handler + def execute(context) + context.call + end + end + end + end +end diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb new file mode 100644 index 000000000..c5e80c716 --- /dev/null +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb @@ -0,0 +1,30 @@ +module ForestAdminDatasourceCustomizer + module Decorators + module Override + class OverrideCollectionDecorator < ForestAdminDatasourceToolkit::Decorators::CollectionDecorator + include Context + attr_reader :create_handler, :update_handler, :delete_handler + + def initialize(child_collection, datasource) + super + @create_handler = Handler.new + @update_handler = Handler.new + @delete_handler = Handler.new + end + + def create(caller, data) + if @create_handler + context = CreateOverrideCustomizationContext.new(@child_collection, caller, data) + return @create_handler.execute(context) + end + + super + end + + def add_create_handler(handler) + @create_handler = handler + end + end + end + end +end From a98f8037a522fdd24a199b645ac8695e35a3e292 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 7 May 2024 16:07:22 +0200 Subject: [PATCH 03/10] chore: add cusztomizer methods --- .../collection_customizer.rb | 12 ++++++++++++ .../decorators/decorators_stack.rb | 3 ++- .../decorators/override/handler.rb | 11 ----------- 3 files changed, 14 insertions(+), 12 deletions(-) delete mode 100644 packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb index 8fd87896d..3d484d656 100644 --- a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb @@ -285,6 +285,18 @@ def replace_field_binary_mode(name, binary_mode) push_customization { @stack.binary.get_collection(@name).set_binary_mode(name, binary_mode) } end + def override_create(handler) + push_customization { @stack.override.get_collection(@name).add_create_handler(handler) } + end + + def override_update(handler) + push_customization { @stack.override.get_collection(@name).add_update_handler(handler) } + end + + def override_delete(handler) + push_customization { @stack.override.get_collection(@name).add_delete_handler(handler) } + end + private def push_customization(&customization) diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/decorators_stack.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/decorators_stack.rb index 6415d7be1..1f6b4c213 100644 --- a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/decorators_stack.rb +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/decorators_stack.rb @@ -5,12 +5,13 @@ class DecoratorsStack attr_reader :datasource, :schema, :search, :early_computed, :late_computed, :action, :relation, :late_op_emulate, :early_op_emulate, :validation, :sort, :rename_field, :publication, :write, :chart, :hook, :segment, - :binary + :binary, :override def initialize(datasource) @customizations = [] last = datasource + last = @override = DatasourceDecorator.new(last, Override::OverrideCollectionDecorator) last = DatasourceDecorator.new(last, Empty::EmptyCollectionDecorator) last = DatasourceDecorator.new(last, OperatorsEquivalence::OperatorsEquivalenceCollectionDecorator) diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb deleted file mode 100644 index c5b9641aa..000000000 --- a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/handler.rb +++ /dev/null @@ -1,11 +0,0 @@ -module ForestAdminDatasourceCustomizer - module Decorators - module Override - class Handler - def execute(context) - context.call - end - end - end - end -end From e1179b5aa9b8322bda69a5e2ed0f8d2df5db919a Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 7 May 2024 16:08:58 +0200 Subject: [PATCH 04/10] feat(override): add update & delete behavior --- .../override/override_collection_decorator.rb | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb index c5e80c716..ae784635f 100644 --- a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator.rb @@ -5,17 +5,10 @@ class OverrideCollectionDecorator < ForestAdminDatasourceToolkit::Decorators::Co include Context attr_reader :create_handler, :update_handler, :delete_handler - def initialize(child_collection, datasource) - super - @create_handler = Handler.new - @update_handler = Handler.new - @delete_handler = Handler.new - end - def create(caller, data) if @create_handler context = CreateOverrideCustomizationContext.new(@child_collection, caller, data) - return @create_handler.execute(context) + return @create_handler.call(context) end super @@ -24,6 +17,32 @@ def create(caller, data) def add_create_handler(handler) @create_handler = handler end + + def update(caller, filter, patch) + if @update_handler + context = UpdateOverrideCustomizationContext.new(@child_collection, caller, filter, patch) + return @update_handler.call(context) + end + + super + end + + def add_update_handler(handler) + @update_handler = handler + end + + def delete(caller, filter) + if @delete_handler + context = DeleteOverrideCustomizationContext.new(@child_collection, caller, filter) + return @delete_handler.call(context) + end + + super + end + + def add_delete_handler(handler) + @delete_handler = handler + end end end end From 5a08695698fbe3c5b9bd1a40f753e660739f3c6a Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 7 May 2024 16:09:40 +0200 Subject: [PATCH 05/10] chore: remove useless code --- .../decorators/hook/hook_collection_decorator_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/hook/hook_collection_decorator_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/hook/hook_collection_decorator_spec.rb index f00a630f2..c7c37221b 100644 --- a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/hook/hook_collection_decorator_spec.rb +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/hook/hook_collection_decorator_spec.rb @@ -13,7 +13,6 @@ module Hook subject(:hook_collection_decorator) { described_class } let(:caller) { instance_double(ForestAdminDatasourceToolkit::Components::Caller) } - let(:category) { @datasource_decorator.get_collection('category') } let(:aggregation) { instance_double(ForestAdminDatasourceToolkit::Components::Query::Aggregation) } before do From e9c2c1c53897815827ec293518809fb217d1edb9 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 7 May 2024 16:12:59 +0200 Subject: [PATCH 06/10] chore: add tests on customizer & override collection --- .../collection_customizer_spec.rb | 45 ++++++ .../override_collection_decorator_spec.rb | 136 ++++++++++++++++++ 2 files changed, 181 insertions(+) create mode 100644 packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb index 560386ca0..868507305 100644 --- a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb @@ -532,5 +532,50 @@ module ForestAdminDatasourceCustomizer expect(@datasource_customizer.stack.binary.get_collection('book')).to have_received(:set_binary_mode) end end + + context 'when using override_create' do + it 'adds the handler to the stack' do + stack = @datasource_customizer.stack + stack.apply_queued_customizations({}) + allow(stack.override).to receive(:get_collection).with('book').and_return(@datasource_customizer.stack.override.get_collection('book')) + + customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') + handler = proc { [] } + customizer.override_create(handler) + stack.apply_queued_customizations({}) + + expect(@datasource_customizer.stack.override.get_collection('book').create_handler).to eq(handler) + end + end + + context 'when using override_update' do + it 'adds the handler to the stack' do + stack = @datasource_customizer.stack + stack.apply_queued_customizations({}) + allow(stack.override).to receive(:get_collection).with('book').and_return(@datasource_customizer.stack.override.get_collection('book')) + + customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') + handler = proc { [] } + customizer.override_update(handler) + stack.apply_queued_customizations({}) + + expect(@datasource_customizer.stack.override.get_collection('book').update_handler).to eq(handler) + end + end + + context 'when using override_delete' do + it 'adds the handler to the stack' do + stack = @datasource_customizer.stack + stack.apply_queued_customizations({}) + allow(stack.override).to receive(:get_collection).with('book').and_return(@datasource_customizer.stack.override.get_collection('book')) + + customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') + handler = proc { [] } + customizer.override_delete(handler) + stack.apply_queued_customizations({}) + + expect(@datasource_customizer.stack.override.get_collection('book').delete_handler).to eq(handler) + end + end end end diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb new file mode 100644 index 000000000..2be876968 --- /dev/null +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb @@ -0,0 +1,136 @@ +require 'spec_helper' + +module ForestAdminDatasourceCustomizer + module Decorators + module Override + include ForestAdminDatasourceToolkit + include ForestAdminDatasourceToolkit::Components::Query + include ForestAdminDatasourceToolkit::Decorators + + describe OverrideCollectionDecorator do + subject(:override_collection_decorator) { described_class } + + let(:caller) { instance_double(ForestAdminDatasourceToolkit::Components::Caller) } + + before do + datasource = Datasource.new + @transaction = collection_build( + name: 'transaction', + schema: { + fields: { + 'id' => numeric_primary_key_build, + 'description' => column_build, + 'amount_in_euro' => column_build + } + }, + list: [], + create: {}, + update: nil, + delete: nil, + aggregate: [] + ) + datasource.add_collection(@transaction) + @decorated_datasource = DatasourceDecorator.new(datasource, override_collection_decorator) + @decorated_transaction = @decorated_datasource.get_collection('transaction') + end + + it 'schema should not be changed' do + expect(@decorated_transaction.schema).to eq(@transaction.schema) + end + + context 'when no handler are set' do + context 'when create' do + it 'calls the original collection behavior' do + allow(@decorated_transaction).to receive(:create).and_return(nil) + @decorated_transaction.create(caller, []) + + expect(@decorated_transaction).to have_received(:create) + end + end + + context 'when update' do + it 'calls the original collection behavior' do + allow(@decorated_transaction).to receive(:update).and_return(nil) + @decorated_transaction.update(caller, Filter.new, []) + + expect(@decorated_transaction).to have_received(:update) + end + end + + context 'when delete' do + it 'calls the original collection behavior' do + allow(@decorated_transaction).to receive(:delete).and_return(nil) + @decorated_transaction.delete(caller, Filter.new) + + expect(@decorated_transaction).to have_received(:delete) + end + end + end + + context 'when setting up override' do + # describe('on create', () => { + # test('it should call the handler', async () => { + # const spy = jest.spyOn(transactions, 'create'); + # const handler = jest.fn(); + # + # const currentCaller = factories.caller.build(); + # const currentData = [factories.recordData.build()]; + # const context = new CreateOverrideCustomizationContext( + # transactions, + # currentCaller, + # currentData, + # ); + # + # decoratedTransactions.addCreateHandler(handler); + # await decoratedTransactions.create(currentCaller, currentData); + # + # expect(spy).not.toHaveBeenCalled(); + # expect(handler).toHaveBeenCalledTimes(1); + # + # const handlerArguments = handler.mock.calls[0][0]; + # expect(handlerArguments.caller).toEqual(context.caller); + # expect(handlerArguments.data).toEqual(context.data); + # }); + # }); + + context 'when create' do + it 'calls the handler' do + handler = instance_double(Proc, call: nil) + Context::CreateOverrideCustomizationContext.new(@decorated_transaction, caller, []) + # handler = Proc.new do |context| + # expect(context.caller).to eq(caller) + # end + + @decorated_transaction.add_create_handler(handler) + @decorated_transaction.create(caller, []) + + expect(handler).to have_received(:call).once + end + end + + context 'when update' do + it 'calls the handler' do + handler = instance_double(Proc, call: nil) + + @decorated_transaction.add_update_handler(handler) + @decorated_transaction.update(caller, Filter.new, []) + + expect(handler).to have_received(:call).once + end + end + + context 'when delete' do + it 'calls the handler' do + handler = instance_double(Proc, call: nil) + + @decorated_transaction.add_delete_handler(handler) + @decorated_transaction.delete(caller, Filter.new) + + expect(handler).to have_received(:call).once + end + end + end + end + end + end +end From 17a245532483cce2539261e3dc8bb3acd92bf84c Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 13 May 2024 10:05:33 +0200 Subject: [PATCH 07/10] chore: update tests --- .../override_collection_decorator_spec.rb | 44 ++++++------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb index 2be876968..9af84cb6d 100644 --- a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb @@ -68,43 +68,18 @@ module Override end context 'when setting up override' do - # describe('on create', () => { - # test('it should call the handler', async () => { - # const spy = jest.spyOn(transactions, 'create'); - # const handler = jest.fn(); - # - # const currentCaller = factories.caller.build(); - # const currentData = [factories.recordData.build()]; - # const context = new CreateOverrideCustomizationContext( - # transactions, - # currentCaller, - # currentData, - # ); - # - # decoratedTransactions.addCreateHandler(handler); - # await decoratedTransactions.create(currentCaller, currentData); - # - # expect(spy).not.toHaveBeenCalled(); - # expect(handler).toHaveBeenCalledTimes(1); - # - # const handlerArguments = handler.mock.calls[0][0]; - # expect(handlerArguments.caller).toEqual(context.caller); - # expect(handlerArguments.data).toEqual(context.data); - # }); - # }); - context 'when create' do it 'calls the handler' do handler = instance_double(Proc, call: nil) Context::CreateOverrideCustomizationContext.new(@decorated_transaction, caller, []) - # handler = Proc.new do |context| - # expect(context.caller).to eq(caller) - # end @decorated_transaction.add_create_handler(handler) @decorated_transaction.create(caller, []) - expect(handler).to have_received(:call).once + expect(handler).to have_received(:call).once do |context| + expect(context.caller).to eq(caller) + expect(context.data).to eq([]) + end end end @@ -115,7 +90,11 @@ module Override @decorated_transaction.add_update_handler(handler) @decorated_transaction.update(caller, Filter.new, []) - expect(handler).to have_received(:call).once + expect(handler).to have_received(:call).once do |context| + expect(context.caller).to eq(caller) + expect(context.filter).to be_a(Filter) + expect(context.patch).to eq([]) + end end end @@ -126,7 +105,10 @@ module Override @decorated_transaction.add_delete_handler(handler) @decorated_transaction.delete(caller, Filter.new) - expect(handler).to have_received(:call).once + expect(handler).to have_received(:call).once do |context| + expect(context.caller).to eq(caller) + expect(context.filter).to be_a(Filter) + end end end end From b6df53262960fd0bc9cd4259bd870550eeca7f70 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 13 May 2024 10:06:50 +0200 Subject: [PATCH 08/10] chore: lint test --- .../decorators/override/override_collection_decorator_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb index 9af84cb6d..b5013925c 100644 --- a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/decorators/override/override_collection_decorator_spec.rb @@ -71,7 +71,6 @@ module Override context 'when create' do it 'calls the handler' do handler = instance_double(Proc, call: nil) - Context::CreateOverrideCustomizationContext.new(@decorated_transaction, caller, []) @decorated_transaction.add_create_handler(handler) @decorated_transaction.create(caller, []) From 4d1e254bf0a894b397305bb503745579e0011939 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 23 May 2024 12:02:46 +0200 Subject: [PATCH 09/10] chore: update methods to support proc --- .../collection_customizer.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb index 3d484d656..5132d3271 100644 --- a/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb +++ b/packages/forest_admin_datasource_customizer/lib/forest_admin_datasource_customizer/collection_customizer.rb @@ -285,15 +285,15 @@ def replace_field_binary_mode(name, binary_mode) push_customization { @stack.binary.get_collection(@name).set_binary_mode(name, binary_mode) } end - def override_create(handler) + def override_create(&handler) push_customization { @stack.override.get_collection(@name).add_create_handler(handler) } end - def override_update(handler) + def override_update(&handler) push_customization { @stack.override.get_collection(@name).add_update_handler(handler) } end - def override_delete(handler) + def override_delete(&handler) push_customization { @stack.override.get_collection(@name).add_delete_handler(handler) } end From 65ca41ccb40ac5ad4d9d55c7c6d4a35d2f47a35b Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 23 May 2024 12:03:00 +0200 Subject: [PATCH 10/10] chore: update tests --- .../collection_customizer_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb index 868507305..249356228 100644 --- a/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb +++ b/packages/forest_admin_datasource_customizer/spec/lib/forest_admin_datasource_customizer/collection_customizer_spec.rb @@ -541,7 +541,7 @@ module ForestAdminDatasourceCustomizer customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') handler = proc { [] } - customizer.override_create(handler) + customizer.override_create(&handler) stack.apply_queued_customizations({}) expect(@datasource_customizer.stack.override.get_collection('book').create_handler).to eq(handler) @@ -556,7 +556,7 @@ module ForestAdminDatasourceCustomizer customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') handler = proc { [] } - customizer.override_update(handler) + customizer.override_update(&handler) stack.apply_queued_customizations({}) expect(@datasource_customizer.stack.override.get_collection('book').update_handler).to eq(handler) @@ -571,7 +571,7 @@ module ForestAdminDatasourceCustomizer customizer = described_class.new(@datasource_customizer, @datasource_customizer.stack, 'book') handler = proc { [] } - customizer.override_delete(handler) + customizer.override_delete(&handler) stack.apply_queued_customizations({}) expect(@datasource_customizer.stack.override.get_collection('book').delete_handler).to eq(handler)