From 57cf69261828b9bfc9d8ccb0f6ff2a14b1d10410 Mon Sep 17 00:00:00 2001 From: Sean Collins Date: Tue, 2 Jul 2024 12:02:31 -0600 Subject: [PATCH] Make spec file for eager loading --- .../auto_registration/eager_loading_spec.rb | 31 +++++++++++++++++++ .../auto_registration/memoize_spec.rb | 4 ++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 spec/integration/container/auto_registration/eager_loading_spec.rb diff --git a/spec/integration/container/auto_registration/eager_loading_spec.rb b/spec/integration/container/auto_registration/eager_loading_spec.rb new file mode 100644 index 00000000..a7099712 --- /dev/null +++ b/spec/integration/container/auto_registration/eager_loading_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +RSpec.describe "Eager loading during finalization" do + it "raises error when component cannot be found, due to missing inflection" do + class Test::Container < Dry::System::Container + configure do |config| + config.root = SPEC_ROOT.join("fixtures").realpath + + config.component_dirs.add "components" do |dir| + dir.namespaces.add "test", key: nil + end + end + end + expect { Test::Container.finalize! }.to raise_error(Dry::System::ComponentNotLoadableError) + end + + it "does not raise error when constant can be found" do + class Test::Container < Dry::System::Container + configure do |config| + config.root = SPEC_ROOT.join("fixtures").realpath + + config.component_dirs.add "components" do |dir| + dir.namespaces.add "test", key: nil + end + + config.inflector = Dry::Inflector.new { |i| i.acronym("ABC") } + end + end + expect { Test::Container.finalize! }.to_not raise_error + end +end diff --git a/spec/integration/container/auto_registration/memoize_spec.rb b/spec/integration/container/auto_registration/memoize_spec.rb index 34710ea7..af051f82 100644 --- a/spec/integration/container/auto_registration/memoize_spec.rb +++ b/spec/integration/container/auto_registration/memoize_spec.rb @@ -54,6 +54,8 @@ class Test::Container < Dry::System::Container !component.key.match?(/bar/) end end + + config.inflector = Dry::Inflector.new { |i| i.acronym("ABC") } end end end @@ -68,7 +70,7 @@ class Test::Container < Dry::System::Container context "Finalized container" do before do - Test::Container.finalize!(eager_load: false) + Test::Container.finalize! end include_examples "memoizing components"