@@ -22,15 +22,15 @@ def setup
2222 end
2323
2424 test "prepare! transitions to prepared state" do
25- manager = ConfigManager . new ( @registry , [ ] )
25+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
2626
2727 refute manager . prepared?
2828 manager . prepare!
2929 assert manager . prepared?
3030 end
3131
3232 test "prepare! raises when called twice" do
33- manager = ConfigManager . new ( @registry , [ ] )
33+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
3434 manager . prepare!
3535
3636 assert_raises ( ConfigManager ::ConfigManagerAlreadyPreparedError ) do
@@ -44,22 +44,22 @@ def setup
4444 test_cog { timeout 60 }
4545 timeout_set = true
4646 end
47- manager = ConfigManager . new ( @registry , [ config_proc ] )
47+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
4848 manager . prepare!
4949
5050 assert timeout_set
5151 end
5252
5353 test "config_for raises when not prepared" do
54- manager = ConfigManager . new ( @registry , [ ] )
54+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
5555
5656 assert_raises ( ConfigManager ::ConfigManagerNotPreparedError ) do
5757 manager . config_for ( TestCog )
5858 end
5959 end
6060
6161 test "config_for returns default config when no config procs are provided" do
62- manager = ConfigManager . new ( @registry , [ ] )
62+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
6363 manager . prepare!
6464
6565 config = manager . config_for ( TestCog )
@@ -71,7 +71,7 @@ def setup
7171 config_proc = proc do
7272 test_cog { timeout 60 }
7373 end
74- manager = ConfigManager . new ( @registry , [ config_proc ] )
74+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
7575 manager . prepare!
7676
7777 config = manager . config_for ( TestCog )
@@ -83,7 +83,7 @@ def setup
8383 config_proc = proc do
8484 test_cog ( :my_step ) { timeout 90 }
8585 end
86- manager = ConfigManager . new ( @registry , [ config_proc ] )
86+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
8787 manager . prepare!
8888
8989 scoped_config = manager . config_for ( TestCog , :my_step )
@@ -97,7 +97,7 @@ def setup
9797 config_proc = proc do
9898 test_cog ( /^api_/ ) { timeout 120 }
9999 end
100- manager = ConfigManager . new ( @registry , [ config_proc ] )
100+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
101101 manager . prepare!
102102
103103 matching_config = manager . config_for ( TestCog , :api_call )
@@ -112,7 +112,7 @@ def setup
112112 test_cog { async! }
113113 test_cog ( :my_step ) { timeout 90 }
114114 end
115- manager = ConfigManager . new ( @registry , [ config_proc ] )
115+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
116116 manager . prepare!
117117
118118 config = manager . config_for ( TestCog , :my_step )
@@ -125,14 +125,37 @@ def setup
125125 config_proc = proc do
126126 global { abort_on_failure! }
127127 end
128- manager = ConfigManager . new ( @registry , [ config_proc ] )
128+ manager = ConfigManager . new ( @registry , [ config_proc ] , ProviderRegistry . new )
129129 manager . prepare!
130130
131131 config = manager . config_for ( TestCog )
132132
133133 assert config . abort_on_failure?
134134 end
135135
136+ test "config_for injects provider registry into Agent::Config" do
137+ registry = Cog ::Registry . new
138+ provider_registry = ProviderRegistry . new
139+ provider_registry . register ( Cogs ::Agent ::Providers ::Claude , :claude )
140+
141+ manager = ConfigManager . new ( registry , [ ] , provider_registry )
142+ manager . prepare!
143+
144+ config = manager . config_for ( Cogs ::Agent )
145+
146+ assert_equal provider_registry , config . instance_variable_get ( :@provider_registry )
147+ end
148+
149+ test "config_for does not inject provider registry into non-Agent configs" do
150+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
151+ manager . prepare!
152+
153+ config = manager . config_for ( TestCog )
154+
155+ refute config . respond_to? ( :provider_registry )
156+ refute config . instance_variable_defined? ( :@provider_registry )
157+ end
158+
136159 test "prepare! raises IllegalCogNameError when cog name conflicts with existing method" do
137160 # Register a cog whose derived name ("freeze") conflicts with Object#freeze
138161 conflicting_cog = Class . new ( Cog ) do
@@ -144,7 +167,7 @@ def name
144167 end
145168 @registry . use ( conflicting_cog )
146169
147- manager = ConfigManager . new ( @registry , [ ] )
170+ manager = ConfigManager . new ( @registry , [ ] , ProviderRegistry . new )
148171
149172 assert_raises ( ConfigManager ::IllegalCogNameError ) do
150173 manager . prepare!
0 commit comments