diff --git a/lib/server/ai/client.rb b/lib/server/ai/client.rb index 234912a..63b063a 100644 --- a/lib/server/ai/client.rb +++ b/lib/server/ai/client.rb @@ -147,6 +147,8 @@ def initialize(ld_client) # @return [AIConfig] An AIConfig instance containing the configuration data # def config(config_key, context, default_value = nil, variables = nil) + @ld_client.track('$ld:ai:config:function:single', context, config_key, 1) + variation = @ld_client.variation( config_key, context, diff --git a/spec/server/ai/config_tracker_spec.rb b/spec/server/ai/config_tracker_spec.rb index f8daf9c..4a8373a 100644 --- a/spec/server/ai/config_tracker_spec.rb +++ b/spec/server/ai/config_tracker_spec.rb @@ -377,4 +377,26 @@ ) end end + + describe 'config method tracking' do + it 'calls track with correct parameters when config is called' do + expect(ld_client).to receive(:track).with( + '$ld:ai:config:function:single', + context, + 'test-config-key', + 1 + ) + allow(ld_client).to receive(:variation).and_return({ + '_ldMeta' => { 'enabled' => true, 'variationKey' => 'test-variation', 'version' => 1 }, + 'model' => { 'name' => 'test-model' }, + 'provider' => { 'name' => 'test-provider' }, + 'messages' => [], + }) + + client = LaunchDarkly::Server::AI::Client.new(ld_client) + default_value = LaunchDarkly::Server::AI::AIConfig.new(enabled: false) + + client.config('test-config-key', context, default_value) + end + end end