Skip to content

Commit f410e92

Browse files
rashidspthomaszurkan-optimizely
authored andcommitted
Fixes invalid args issue (#92)
1 parent 122c69d commit f410e92

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

lib/optimizely.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,16 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
261261
return false
262262
end
263263

264+
unless feature_flag_key
265+
@logger.log(Logger::ERROR, 'Feature flag key cannot be empty.')
266+
return false
267+
end
268+
269+
if user_id.to_s.empty?
270+
@logger.log(Logger::ERROR, 'User ID cannot be empty.')
271+
return false
272+
end
273+
264274
feature_flag = @config.get_feature_flag_from_key(feature_flag_key)
265275
unless feature_flag
266276
@logger.log(Logger::ERROR, "No feature flag was found for key '#{feature_flag_key}'.")

spec/project_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,17 @@ class InvalidErrorHandler; end
659659
expect(invalid_project.is_feature_enabled('totally_invalid_feature_key', 'test_user')).to be false
660660
end
661661

662+
it 'should return false when the feature flag key is nil' do
663+
expect(project_instance.is_feature_enabled(nil, 'test_user')).to be false
664+
expect(spy_logger).to have_received(:log).once.with(Logger::ERROR, 'Feature flag key cannot be empty.')
665+
end
666+
667+
it 'should return false when user_id is empty or nil' do
668+
expect(project_instance.is_feature_enabled('boolean_single_variable_feature', '')).to be false
669+
expect(project_instance.is_feature_enabled('boolean_single_variable_feature', nil)).to be false
670+
expect(spy_logger).to have_received(:log).twice.with(Logger::ERROR, 'User ID cannot be empty.')
671+
end
672+
662673
it 'should return false when the feature flag key is invalid' do
663674
expect(project_instance.is_feature_enabled('totally_invalid_feature_key', 'test_user')).to be false
664675
expect(spy_logger).to have_received(:log).once.with(Logger::ERROR, "Feature flag key 'totally_invalid_feature_key' is not in datafile.")

0 commit comments

Comments
 (0)