Skip to content

Commit 2e54131

Browse files
committed
update tests
1 parent 61e502f commit 2e54131

7 files changed

Lines changed: 45 additions & 47 deletions

File tree

lib/splitclient-rb/cache/fetchers/split_fetcher.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def fetch_splits(fetch_options = { cache_control_headers: false, till: nil })
2626
@semaphore.synchronize do
2727
data = splits_since(@splits_repository.get_change_number, @rule_based_segments_repository.get_change_number, fetch_options)
2828
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(@splits_repository, data[:ff][:d], data[:ff][:t], @config, @splits_api.clear_storage)
29-
SplitIoClient::Helpers::RepositoryHelper.update_rule_based_segment_repository(@rule_based_segments_repository, data[:rbs][:d], data[:rbs][:t], @config, @splits_api.clear_storage)
29+
SplitIoClient::Helpers::RepositoryHelper.update_rule_based_segment_repository(@rule_based_segments_repository, data[:rbs][:d], data[:rbs][:t], @config)
3030
@splits_repository.set_segment_names(data[:segment_names])
3131
@rule_based_segments_repository.set_segment_names(data[:segment_names])
3232
@config.logger.debug("segments seen(#{data[:segment_names].length}): #{data[:segment_names].to_a}") if @config.debug_enabled

lib/splitclient-rb/cache/repositories/splits_repository.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ def clear
127127
@tt_cache.clear
128128

129129
@adapter.clear(namespace_key)
130+
unless @config.mode.equal?(:consumer)
131+
@adapter.set_string(namespace_key('.splits.till'), '-1')
132+
@adapter.initialize_map(namespace_key('.segments.registered'))
133+
end
130134
end
131135

132136
def kill(change_number, split_name, default_treatment)

lib/splitclient-rb/engine/api/splits.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ def since(since, since_rbs, fetch_options = { cache_control_headers: false, till
2222
start = Time.now
2323

2424
if check_last_proxy_check_timestamp
25-
puts "switching to new spec"
2625
@spec_version = SplitIoClient::Spec::FeatureFlags::SPEC_VERSION
2726
@config.logger.debug("Switching to new Feature flag spec #{@spec_version} and fetching.")
2827
since = -1

lib/splitclient-rb/helpers/repository_helper.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def self.update_feature_flag_repository(feature_flag_repository, feature_flags,
2727
feature_flag_repository.update(to_add, to_delete, change_number)
2828
end
2929

30-
def self.update_rule_based_segment_repository(rule_based_segment_repository, rule_based_segments, change_number, config, clear_storage)
30+
def self.update_rule_based_segment_repository(rule_based_segment_repository, rule_based_segments, change_number, config)
3131
to_add = []
3232
to_delete = []
3333
rule_based_segments.each do |rule_based_segment|
@@ -40,7 +40,6 @@ def self.update_rule_based_segment_repository(rule_based_segment_repository, rul
4040
config.logger.debug("storing rule based segment (#{rule_based_segment[:name]})") if config.debug_enabled
4141
to_add.push(rule_based_segment)
4242
end
43-
rule_based_segment_repository.clear if clear_storage
4443

4544
rule_based_segment_repository.update(to_add, to_delete, change_number)
4645
end

lib/splitclient-rb/sse/workers/splits_worker.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def update_rule_based_segment(notification)
9393
new_rb_segment = return_object_from_json(notification)
9494
SplitIoClient::Helpers::RepositoryHelper.update_rule_based_segment_repository(@rule_based_segment_repository,
9595
[new_rb_segment],
96-
notification.data['changeNumber'], @config, false)
96+
notification.data['changeNumber'], @config)
9797
fetch_segments_if_not_exists(Helpers::Util.segment_names_by_object(new_rb_segment, "IN_SEGMENT"), @rule_based_segment_repository)
9898

9999
# TODO: enable when telemetry spec is added

spec/integrations/in_memory_client_spec.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,6 +1381,44 @@
13811381
expect(client_rbs.get_treatment('mauro@split.io', 'rbs_feature_flag', {:email => 'mauro@split.io'})).to eq('off')
13821382
end
13831383
end
1384+
1385+
context 'old spec tests' do
1386+
let(:old_spec_splits) { File.read(File.expand_path(File.join(File.dirname(__FILE__), '../test_data/rule_based_segments/split_old_spec.json'))) }
1387+
1388+
it 'check new spec after last proxy timestamp expires' do
1389+
splits_rbs = File.read(File.join(SplitIoClient.root, 'spec/test_data/rule_based_segments/rule_base_segments.json'))
1390+
1391+
stub_request(:get, 'https://proxy-server/api/splitChanges?s=1.3&since=-1&rbSince=-1')
1392+
.to_return({status: 400, body: ''}, {status: 200, body: splits_rbs})
1393+
stub_request(:get, "https://sdk.split.io/api/splitChanges?rbSince=1506703262916&s=1.3&since=1506703262916")
1394+
.to_return(status: 200, body: '')
1395+
stub_request(:get, 'https://proxy-server/api/splitChanges?s=1.1&since=-1')
1396+
.to_return(status: 200, body: old_spec_splits)
1397+
stub_request(:get, "https://proxy-server/api/splitChanges?s=1.1&since=1457726098069")
1398+
.to_return(status: 200, body: '')
1399+
stub_request(:post, "https://telemetry.split.io/api/v1/metrics/config")
1400+
.to_return(status: 200, body: '')
1401+
1402+
factory_old_spec =
1403+
SplitIoClient::SplitFactory.new('test_api_key',
1404+
{impressions_mode: :none,
1405+
features_refresh_rate: 2,
1406+
base_uri: "https://proxy-server/api",
1407+
streaming_enabled: false})
1408+
1409+
SplitIoClient::Api::Splits::PROXY_CHECK_INTERVAL_SECONDS = 1
1410+
client_old_spec = factory_old_spec.client
1411+
client_old_spec.block_until_ready
1412+
expect(client_old_spec.get_treatment('whitelisted_user', 'whitelist_feature')).to eq('on')
1413+
1414+
sleep 1
1415+
split_fetcher = factory_old_spec.instance_variable_get(:@split_fetcher)
1416+
split_fetcher.fetch_splits
1417+
sleep 1
1418+
expect(client_old_spec.get_treatment('bilal@split.io', 'rbs_feature_flag', {:email => 'bilal@split.io'})).to eq('on')
1419+
expect(client_old_spec.get_treatment('whitelisted_user', 'whitelist_feature')).to eq('control')
1420+
end
1421+
end
13841422
end
13851423

13861424
private

spec/integrations/old_spec_client_spec.rb

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)