@@ -17,13 +17,21 @@ import (
1717)
1818
1919type mockServerSDK struct {
20- log * ldlogtest.MockLog
21- json []byte
22- err error
20+ log * ldlogtest.MockLog
21+ json []byte
22+ err error
23+ events []mockEvent
24+ }
25+
26+ type mockEvent struct {
27+ eventName string
28+ context ldcontext.Context
29+ metricValue float64
30+ data ldvalue.Value
2331}
2432
2533func newMockSDK (json []byte , err error ) * mockServerSDK {
26- return & mockServerSDK {json : json , err : err , log : ldlogtest .NewMockLog ()}
34+ return & mockServerSDK {json : json , err : err , log : ldlogtest .NewMockLog (), events : [] mockEvent {} }
2735}
2836
2937func (m * mockServerSDK ) JSONVariation (
@@ -44,6 +52,12 @@ func (m *mockServerSDK) Loggers() interfaces.LDLoggers {
4452}
4553
4654func (m * mockServerSDK ) TrackMetric (eventName string , context ldcontext.Context , metricValue float64 , data ldvalue.Value ) error {
55+ m .events = append (m .events , mockEvent {
56+ eventName : eventName ,
57+ context : context ,
58+ metricValue : metricValue ,
59+ data : data ,
60+ })
4761 return nil
4862}
4963
@@ -288,6 +302,33 @@ func TestCanSetDefaultConfigFields(t *testing.T) {
288302 assert .Equal (t , datamodel .System , msg [1 ].Role )
289303}
290304
305+ func TestConfigMethodTracking (t * testing.T ) {
306+ mockSDK := newMockSDK (nil , nil )
307+ client , err := NewClient (mockSDK )
308+ require .NoError (t , err )
309+ require .NotNil (t , client )
310+
311+ defaultConfig := NewConfig ().WithEnabled (false ).Build ()
312+ context := ldcontext .New ("user-key" )
313+ configKey := "test-config-key"
314+
315+ config , tracker := client .Config (configKey , context , defaultConfig , nil )
316+
317+ require .NotNil (t , config )
318+ require .NotNil (t , tracker )
319+
320+ expectedEvents := []mockEvent {
321+ {
322+ eventName : "$ld:ai:config:function:single" ,
323+ context : context ,
324+ metricValue : 1 ,
325+ data : ldvalue .String (configKey ),
326+ },
327+ }
328+
329+ assert .ElementsMatch (t , expectedEvents , mockSDK .events )
330+ }
331+
291332func TestCanSetModelParameters (t * testing.T ) {
292333 client , err := NewClient (newMockSDK (nil , nil ))
293334 require .NoError (t , err )
0 commit comments