@@ -32,16 +32,16 @@ def create_redis_store_uncached()
32
32
include_examples "feature_store" , method ( :create_redis_store_uncached )
33
33
end
34
34
35
- def make_concurrent_modifier ( other_client , flag , start_version , end_version )
35
+ def add_concurrent_modifier ( store , other_client , flag , start_version , end_version )
36
36
version_counter = start_version
37
- Proc . new do |base_key , key |
37
+ expect ( store ) . to receive ( :before_update_transaction ) { |base_key , key |
38
38
if version_counter <= end_version
39
39
new_flag = flag . clone
40
40
new_flag [ :version ] = version_counter
41
41
other_client . hset ( base_key , key , new_flag . to_json )
42
42
version_counter = version_counter + 1
43
43
end
44
- end
44
+ } . at_least ( :once )
45
45
end
46
46
47
47
it "handles upsert race condition against external client with lower version" do
@@ -52,7 +52,7 @@ def make_concurrent_modifier(other_client, flag, start_version, end_version)
52
52
flag = { key : "foo" , version : 1 }
53
53
store . init ( LaunchDarkly ::FEATURES => { flag [ :key ] => flag } )
54
54
55
- store . set_transaction_hook ( make_concurrent_modifier ( other_client , flag , 2 , 4 ) )
55
+ add_concurrent_modifier ( store , other_client , flag , 2 , 4 )
56
56
57
57
my_ver = { key : "foo" , version : 10 }
58
58
store . upsert ( LaunchDarkly ::FEATURES , my_ver )
@@ -71,7 +71,7 @@ def make_concurrent_modifier(other_client, flag, start_version, end_version)
71
71
flag = { key : "foo" , version : 1 }
72
72
store . init ( LaunchDarkly ::FEATURES => { flag [ :key ] => flag } )
73
73
74
- store . set_transaction_hook ( make_concurrent_modifier ( other_client , flag , 3 , 3 ) )
74
+ add_concurrent_modifier ( store , other_client , flag , 3 , 3 )
75
75
76
76
my_ver = { key : "foo" , version : 2 }
77
77
store . upsert ( LaunchDarkly ::FEATURES , my_ver )
0 commit comments