@@ -4463,6 +4463,30 @@ def callback(_args); end
44634463 expect ( spy_logger ) . to have_received ( :log ) . once . with ( Logger ::INFO , 'ODP is not enabled.' )
44644464 end
44654465
4466+ it 'should accept zero for flush interval' do
4467+ stub_request ( :get , "https://cdn.optimizely.com/datafiles/#{ sdk_key } .json" )
4468+ . to_return ( status : 200 , body : config_body_integrations_JSON )
4469+ sdk_settings = Optimizely ::Helpers ::OptimizelySdkSettings . new ( odp_event_flush_interval : 0 )
4470+ project = Optimizely ::Project . new ( nil , nil , spy_logger , error_handler , false , nil , sdk_key , nil , nil , nil , [ ] , sdk_settings )
4471+ event_manager = project . odp_manager . instance_variable_get ( '@event_manager' )
4472+ expect ( event_manager . instance_variable_get ( '@flush_interval' ) ) . to eq 0
4473+ project . close
4474+
4475+ expect ( spy_logger ) . not_to have_received ( :log ) . with ( Logger ::ERROR , anything )
4476+ end
4477+
4478+ it 'should use default for flush interval when nil' do
4479+ stub_request ( :get , "https://cdn.optimizely.com/datafiles/#{ sdk_key } .json" )
4480+ . to_return ( status : 200 , body : config_body_integrations_JSON )
4481+ sdk_settings = Optimizely ::Helpers ::OptimizelySdkSettings . new ( odp_event_flush_interval : nil )
4482+ project = Optimizely ::Project . new ( nil , nil , spy_logger , error_handler , false , nil , sdk_key , nil , nil , nil , [ ] , sdk_settings )
4483+ event_manager = project . odp_manager . instance_variable_get ( '@event_manager' )
4484+ expect ( event_manager . instance_variable_get ( '@flush_interval' ) ) . to eq 1
4485+ project . close
4486+
4487+ expect ( spy_logger ) . not_to have_received ( :log ) . with ( Logger ::ERROR , anything )
4488+ end
4489+
44664490 it 'should accept cache_size' do
44674491 stub_request ( :get , "https://cdn.optimizely.com/datafiles/#{ sdk_key } .json" )
44684492 . to_return ( status : 200 , body : config_body_integrations_JSON )
@@ -4502,6 +4526,34 @@ def callback(_args); end
45024526 expect ( spy_logger ) . not_to have_received ( :log ) . with ( Logger ::ERROR , anything )
45034527 end
45044528
4529+ it 'should use default cache_size and cache_timeout when not provided' do
4530+ stub_request ( :get , "https://cdn.optimizely.com/datafiles/#{ sdk_key } .json" )
4531+ . to_return ( status : 200 , body : config_body_integrations_JSON )
4532+ sdk_settings = Optimizely ::Helpers ::OptimizelySdkSettings . new
4533+ project = Optimizely ::Project . new ( nil , nil , spy_logger , error_handler , false , nil , sdk_key , nil , nil , nil , [ ] , sdk_settings )
4534+ segment_manager = project . odp_manager . instance_variable_get ( '@segment_manager' )
4535+ segments_cache = segment_manager . instance_variable_get ( '@segments_cache' )
4536+ expect ( segments_cache . capacity ) . to eq 10_000
4537+ expect ( segments_cache . timeout ) . to eq 600
4538+ project . close
4539+
4540+ expect ( spy_logger ) . not_to have_received ( :log ) . with ( Logger ::ERROR , anything )
4541+ end
4542+
4543+ it 'should accept zero cache_size and cache_timeout' do
4544+ stub_request ( :get , "https://cdn.optimizely.com/datafiles/#{ sdk_key } .json" )
4545+ . to_return ( status : 200 , body : config_body_integrations_JSON )
4546+ sdk_settings = Optimizely ::Helpers ::OptimizelySdkSettings . new ( segments_cache_size : 0 , segments_cache_timeout_in_secs : 0 )
4547+ project = Optimizely ::Project . new ( nil , nil , spy_logger , error_handler , false , nil , sdk_key , nil , nil , nil , [ ] , sdk_settings )
4548+ segment_manager = project . odp_manager . instance_variable_get ( '@segment_manager' )
4549+ segments_cache = segment_manager . instance_variable_get ( '@segments_cache' )
4550+ expect ( segments_cache . capacity ) . to eq 0
4551+ expect ( segments_cache . timeout ) . to eq 0
4552+ project . close
4553+
4554+ expect ( spy_logger ) . not_to have_received ( :log ) . with ( Logger ::ERROR , anything )
4555+ end
4556+
45054557 it 'should accept valid custom cache' do
45064558 class CustomCache # rubocop:disable Lint/ConstantDefinitionInBlock
45074559 def reset ; end
0 commit comments