Skip to content

Commit c51968f

Browse files
rashidspMichael Ng
authored andcommitted
fix: polling interval type bug (#185)
1 parent 080531d commit c51968f

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

lib/optimizely/config_manager/http_project_config_manager.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def polling_interval(polling_interval)
187187

188188
# If polling interval is less than minimum allowed interval then set it to default update interval.
189189

190-
if polling_interval.to_i >= Helpers::Constants::CONFIG_MANAGER['MIN_UPDATE_INTERVAL']
190+
if (polling_interval.is_a? Integer) && (polling_interval >= Helpers::Constants::CONFIG_MANAGER['MIN_UPDATE_INTERVAL'])
191191
@polling_interval = polling_interval
192192
return
193193
end
@@ -206,15 +206,18 @@ def get_datafile_url(sdk_key, url, url_template)
206206
# url_template - String representing template which is filled in with
207207
# SDK key to determine URL from which to fetch the datafile.
208208
# Returns String representing URL to fetch datafile from.
209-
210-
raise InvalidInputsError, 'Must provide at least one of sdk_key or url.' if sdk_key.nil? && url.nil?
209+
if sdk_key.nil? && url.nil?
210+
@logger.log(Logger::ERROR, 'Must provide at least one of sdk_key or url.')
211+
@error_handler.handle_error(InvalidInputsError)
212+
end
211213

212214
unless url
213215
url_template ||= Helpers::Constants::CONFIG_MANAGER['DATAFILE_URL_TEMPLATE']
214216
begin
215217
return (url_template % sdk_key)
216218
rescue
217-
raise InvalidInputsError, "Invalid url_template #{url_template} provided."
219+
@logger.log(Logger::ERROR, "Invalid url_template #{url_template} provided.")
220+
@error_handler.handle_error(InvalidInputsError)
218221
end
219222
end
220223

spec/config_manager/http_project_config_manager_spec.rb

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,16 @@
279279
end
280280

281281
describe '#get_datafile_url' do
282-
it 'should raise exception when both sdk key and url are nil' do
283-
expect do
284-
Optimizely::HTTPProjectConfigManager.new(
285-
sdk_key: nil,
286-
url: nil
287-
)
288-
end
289-
.to raise_error(Optimizely::InvalidInputsError, 'Must provide at least one of sdk_key or url.')
282+
it 'should log an error when both sdk key and url are nil' do
283+
expect(error_handler).to receive(:handle_error).once.with(Optimizely::InvalidInputsError)
284+
285+
Optimizely::HTTPProjectConfigManager.new(
286+
sdk_key: nil,
287+
url: nil,
288+
error_handler: error_handler,
289+
logger: spy_logger
290+
)
291+
expect(spy_logger).to have_received(:log).once.with(Logger::ERROR, 'Must provide at least one of sdk_key or url.')
290292
end
291293
end
292294
end

0 commit comments

Comments
 (0)