@@ -3,44 +3,50 @@ defmodule Trento.AI.LLMRegistryTest do
33
44 alias Trento.AI.LLMRegistry
55
6- setup do
7- original_config = Application . get_env ( :trento , :ai )
8-
9- Application . put_env ( :trento , :ai ,
10- enabled: true ,
11- providers: [
12- provider1: [
13- models: [
14- "model1" ,
15- "model2"
16- ]
17- ] ,
18- provider2: [
19- models: [
20- "model3" ,
21- "model4"
22- ]
23- ] ,
24- provider3: [
25- models: [
26- "model5" ,
27- "model6"
6+ import Mox
7+
8+ setup :verify_on_exit!
9+
10+ defp expect_config_loader_to_be_called_times ( times ) do
11+ expect ( Trento.AI.ApplicationConfigLoader.Mock , :load_config , times , fn ->
12+ [
13+ enabled: true ,
14+ providers: [
15+ provider1: [
16+ models: [
17+ "model1" ,
18+ "model2"
19+ ]
20+ ] ,
21+ provider2: [
22+ models: [
23+ "model3" ,
24+ "model4"
25+ ]
26+ ] ,
27+ provider3: [
28+ models: [
29+ "model5" ,
30+ "model6"
31+ ]
2832 ]
2933 ]
3034 ]
31- )
32-
33- on_exit ( fn -> Application . put_env ( :trento , :ai , original_config ) end )
35+ end )
3436 end
3537
3638 describe "providers/0" do
3739 test "returns the list of configured providers" do
40+ expect_config_loader_to_be_called_times ( 1 )
41+
3842 assert LLMRegistry . providers ( ) == [ :provider1 , :provider2 , :provider3 ]
3943 end
4044 end
4145
4246 describe "get_provider_models/1" do
4347 test "returns the list of models for a given provider" do
48+ expect_config_loader_to_be_called_times ( 3 )
49+
4450 assert LLMRegistry . get_provider_models ( :provider1 ) == [
4551 "model1" ,
4652 "model2"
@@ -58,11 +64,15 @@ defmodule Trento.AI.LLMRegistryTest do
5864 end
5965
6066 test "returns an empty list for an unknown provider" do
67+ expect_config_loader_to_be_called_times ( 1 )
68+
6169 assert LLMRegistry . get_provider_models ( :unknown ) == [ ]
6270 assert LLMRegistry . get_provider_models ( "foo" ) == [ ]
6371 end
6472
6573 test "returns all available models" do
74+ expect_config_loader_to_be_called_times ( 1 )
75+
6676 assert LLMRegistry . get_provider_models ( :all ) == [
6777 "model1" ,
6878 "model2" ,
@@ -76,22 +86,30 @@ defmodule Trento.AI.LLMRegistryTest do
7686
7787 describe "get_model_provider/1" do
7888 test "returns the provider for a given model" do
89+ expect_config_loader_to_be_called_times ( 2 )
90+
7991 assert LLMRegistry . get_model_provider ( "model6" ) == :provider3
8092 assert LLMRegistry . get_model_provider ( "model1" ) == :provider1
8193 end
8294
8395 test "returns nil for an unknown model" do
96+ expect_config_loader_to_be_called_times ( 1 )
97+
8498 assert LLMRegistry . get_model_provider ( "unknown-model" ) == nil
8599 end
86100 end
87101
88102 describe "model_supported?/1" do
89103 test "returns true for a supported model" do
104+ expect_config_loader_to_be_called_times ( 2 )
105+
90106 assert LLMRegistry . model_supported? ( "model1" ) == true
91107 assert LLMRegistry . model_supported? ( "model6" ) == true
92108 end
93109
94110 test "returns false for an unsupported model" do
111+ expect_config_loader_to_be_called_times ( 1 )
112+
95113 assert LLMRegistry . model_supported? ( "unknown-model" ) == false
96114 end
97115 end
0 commit comments