2525 }
2626 }
2727 end
28+ let ( :user_anonymous ) do
29+ {
30+ 31+ anonymous : true
32+ }
33+ end
2834 let ( :numeric_key_user ) do
2935 {
3036 key : 33 ,
@@ -155,6 +161,24 @@ def event_processor
155161 client . variation ( "key" , nil , "default" )
156162 end
157163
164+ it "queues a feature event for an existing feature when user is anonymous" do
165+ config . feature_store . init ( { LaunchDarkly ::FEATURES => { } } )
166+ config . feature_store . upsert ( LaunchDarkly ::FEATURES , feature_with_value )
167+ expect ( event_processor ) . to receive ( :add_event ) . with ( hash_including (
168+ kind : "feature" ,
169+ key : "key" ,
170+ version : 100 ,
171+ contextKind : "anonymousUser" ,
172+ user : user_anonymous ,
173+ variation : 0 ,
174+ value : "value" ,
175+ default : "default" ,
176+ trackEvents : true ,
177+ debugEventsUntilDate : 1000
178+ ) )
179+ client . variation ( "key" , user_anonymous , "default" )
180+ end
181+
158182 it "queues a feature event for an existing feature when user key is nil" do
159183 config . feature_store . init ( { LaunchDarkly ::FEATURES => { } } )
160184 config . feature_store . upsert ( LaunchDarkly ::FEATURES , feature_with_value )
@@ -455,6 +479,12 @@ def event_processor
455479 client . track ( "custom_event_name" , user , nil , 1.5 )
456480 end
457481
482+ it "includes contextKind with anonymous user" do
483+ expect ( event_processor ) . to receive ( :add_event ) . with ( hash_including (
484+ kind : "custom" , key : "custom_event_name" , user : user_anonymous , metricValue : 2.2 , contextKind : "anonymousUser" ) )
485+ client . track ( "custom_event_name" , user_anonymous , nil , 2.2 )
486+ end
487+
458488 it "sanitizes the user in the event" do
459489 expect ( event_processor ) . to receive ( :add_event ) . with ( hash_including ( user : sanitized_numeric_key_user ) )
460490 client . track ( "custom_event_name" , numeric_key_user , nil )
@@ -473,6 +503,26 @@ def event_processor
473503 end
474504 end
475505
506+ describe '#alias' do
507+ it "queues up an alias event" do
508+ expect ( event_processor ) . to receive ( :add_event ) . with ( hash_including (
509+ kind : "alias" , key : user [ :key ] , contextKind : "user" , previousKey : user_anonymous [ :key ] , previousContextKind : "anonymousUser" ) )
510+ client . alias ( user , user_anonymous )
511+ end
512+
513+ it "does not send an event, and logs a warning, if user is nil" do
514+ expect ( event_processor ) . not_to receive ( :add_event )
515+ expect ( logger ) . to receive ( :warn )
516+ client . alias ( nil , nil )
517+ end
518+
519+ it "does not send an event, and logs a warning, if user key is nil" do
520+ expect ( event_processor ) . not_to receive ( :add_event )
521+ expect ( logger ) . to receive ( :warn )
522+ client . alias ( user_without_key , user_without_key )
523+ end
524+ end
525+
476526 describe '#identify' do
477527 it "queues up an identify event" do
478528 expect ( event_processor ) . to receive ( :add_event ) . with ( hash_including ( kind : "identify" , key : user [ :key ] , user : user ) )
0 commit comments