@@ -17,13 +17,21 @@ import (
17
17
)
18
18
19
19
type 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
23
31
}
24
32
25
33
func 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 {} }
27
35
}
28
36
29
37
func (m * mockServerSDK ) JSONVariation (
@@ -44,6 +52,12 @@ func (m *mockServerSDK) Loggers() interfaces.LDLoggers {
44
52
}
45
53
46
54
func (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
+ })
47
61
return nil
48
62
}
49
63
@@ -288,6 +302,33 @@ func TestCanSetDefaultConfigFields(t *testing.T) {
288
302
assert .Equal (t , datamodel .System , msg [1 ].Role )
289
303
}
290
304
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
+
291
332
func TestCanSetModelParameters (t * testing.T ) {
292
333
client , err := NewClient (newMockSDK (nil , nil ))
293
334
require .NoError (t , err )
0 commit comments