Skip to content

Commit 1566bfb

Browse files
committed
polish
1 parent acb3233 commit 1566bfb

File tree

4 files changed

+32
-16
lines changed

4 files changed

+32
-16
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def update_feature_flag(notification)
7070
return true if @feature_flags_repository.get_change_number.to_i >= notification.data['changeNumber']
7171
return false unless !notification.data['d'].nil? && @feature_flags_repository.get_change_number == notification.data['pcn']
7272

73-
update_feature_flag_repository(notification)
73+
new_split = update_feature_flag_repository(notification)
7474
fetch_segments_if_not_exists(Helpers::Util.segment_names_by_object(new_split, 'IN_SEGMENT'), @feature_flags_repository)
7575
if fetch_rule_based_segments_if_not_exists(Helpers::Util.segment_names_by_object(new_split, 'IN_RULE_BASED_SEGMENT'),
7676
notification.data['changeNumber'])
@@ -90,6 +90,7 @@ def update_feature_flag_repository(notification)
9090
new_split = return_object_from_json(notification)
9191
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(@feature_flags_repository, [new_split],
9292
notification.data['changeNumber'], @config, false)
93+
new_split
9394
end
9495

9596
def update_rule_based_segment(notification)

spec/engine/api/splits_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206

207207
parsed_splits = splits_api.since(-1, -1)
208208

209-
expect(parsed_splits[:ff][:d].length()).to eq(7)
209+
expect(parsed_splits[:ff][:d].length()).to eq(6)
210210
expect(parsed_splits[:ff][:t]).to eq(1457726098069)
211211
expect(parsed_splits[:ff][:s]).to eq(-1)
212212
expect(parsed_splits[:rbs]).to eq({:d => [], :s => -1, :t => -1})
@@ -220,7 +220,7 @@
220220
.to_return(status: 200, body: old_spec_splits)
221221

222222
parsed_splits = splits_api.since(-1, -1)
223-
expect(parsed_splits[:ff][:d].length()).to eq(7)
223+
expect(parsed_splits[:ff][:d].length()).to eq(6)
224224
expect(splits_api.instance_variable_get(:@spec_version)).to eq(SplitIoClient::Api::Splits::SPEC_1_1)
225225

226226
SplitIoClient::Api::Splits::PROXY_CHECK_INTERVAL_SECONDS = 1

spec/engine/matchers/rule_based_segment_matcher_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
expect(matcher.match?(value: 'key2')).to be false
3333
end
3434

35-
it 'return true if excluded rb segment is matched' do
35+
it 'return false if excluded rb segment is matched' do
3636
rbs_repositoy = SplitIoClient::Cache::Repositories::RuleBasedSegmentsRepository.new(config)
3737
rbs = {:name => 'sample_rule_based_segment', :trafficTypeName => 'tt_name_1', :conditions => [], :excluded => {:keys => [], :segments => [{:name => 'no_excludes', :type => 'rule-based'}]}}
3838
rbs2 = {:name => 'no_excludes', :trafficTypeName => 'tt_name_1',
@@ -60,7 +60,7 @@
6060

6161
rbs_repositoy.update([rbs, rbs2], [], -1)
6262
matcher = described_class.new(segments_repository, rbs_repositoy, 'sample_rule_based_segment', config)
63-
expect(matcher.match?(value: '[email protected]', attributes: {'email': '[email protected]'})).to be true
63+
expect(matcher.match?(value: '[email protected]', attributes: {'email': '[email protected]'})).to be false
6464
expect(matcher.match?(value: 'bilal', attributes: {'email': 'bilal'})).to be false
6565
end
6666

spec/repository_helper.rb

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313
flag_sets_repository,
1414
flag_set_filter)
1515

16-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config)
16+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config, false)
1717
expect(feature_flag_repository.get_split('split1').nil?).to eq(true)
1818

19-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => ['set_3']}], -1, config)
19+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => ['set_3']}], -1, config, false)
2020
expect(feature_flag_repository.get_split('split1').nil?).to eq(true)
2121

22-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => ['set_1']}], -1, config)
22+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => ['set_1']}], -1, config, false)
2323
expect(feature_flag_repository.get_split('split1').nil?).to eq(false)
2424

25-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ARCHIVED', conditions: [], :sets => ['set_1']}], -1, config)
25+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ARCHIVED', conditions: [], :sets => ['set_1']}], -1, config, false)
2626
expect(feature_flag_repository.get_split('split1').nil?).to eq(true)
2727
end
2828

@@ -35,16 +35,16 @@
3535
flag_sets_repository,
3636
flag_set_filter)
3737

38-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config)
38+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config, false)
3939
expect(feature_flag_repository.get_split('split1').nil?).to eq(false)
4040

41-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :sets => ['set_3']}], -1, config)
41+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :sets => ['set_3']}], -1, config, false)
4242
expect(feature_flag_repository.get_split('split2').nil?).to eq(false)
4343

44-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split3', :status => 'ACTIVE', conditions: [], :sets => ['set_1']}], -1, config)
44+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split3', :status => 'ACTIVE', conditions: [], :sets => ['set_1']}], -1, config, false)
4545
expect(feature_flag_repository.get_split('split1').nil?).to eq(false)
4646

47-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ARCHIVED', conditions: [], :sets => ['set_1']}], -1, config)
47+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ARCHIVED', conditions: [], :sets => ['set_1']}], -1, config, false)
4848
expect(feature_flag_repository.get_split('split1').nil?).to eq(true)
4949
end
5050

@@ -57,16 +57,31 @@
5757
flag_sets_repository,
5858
flag_set_filter)
5959

60-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config)
60+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config, false)
6161
expect(feature_flag_repository.get_split('split1')[:impressionsDisabled]).to eq(false)
6262

63-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :impressionsDisabled => false, :sets => []}], -1, config)
63+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :impressionsDisabled => false, :sets => []}], -1, config, false)
6464
expect(feature_flag_repository.get_split('split2')[:impressionsDisabled]).to eq(false)
6565

66-
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :impressionsDisabled => true, :sets => []}], -1, config)
66+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :impressionsDisabled => true, :sets => []}], -1, config, false)
6767
expect(feature_flag_repository.get_split('split2')[:impressionsDisabled]).to eq(true)
68+
end
69+
70+
it 'test clear cache flag' do
71+
config = SplitIoClient::SplitConfig.new(cache_adapter: :memory)
72+
flag_set_filter = SplitIoClient::Cache::Filter::FlagSetsFilter.new([])
73+
flag_sets_repository = SplitIoClient::Cache::Repositories::MemoryFlagSetsRepository.new([])
74+
feature_flag_repository = SplitIoClient::Cache::Repositories::SplitsRepository.new(
75+
config,
76+
flag_sets_repository,
77+
flag_set_filter)
6878

79+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split1', :status => 'ACTIVE', conditions: [], :sets => []}], -1, config, false)
80+
expect(feature_flag_repository.get_split('split1').nil?).to eq(false)
6981

82+
SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(feature_flag_repository, [{:name => 'split2', :status => 'ACTIVE', conditions: [], :sets => ['set_3']}], -1, config, true)
83+
expect(feature_flag_repository.get_split('split2').nil?).to eq(false)
84+
expect(feature_flag_repository.get_split('split1').nil?).to eq(true)
7085
end
7186
end
7287
end

0 commit comments

Comments
 (0)