spec/client_spec.rb in redlock-1.0.1 vs spec/client_spec.rb in redlock-1.1.0
- old
+ new
@@ -62,38 +62,60 @@
expect(@lock_info).to be_lock_info_for(resource_key)
expect(@lock_info[:value]).to be
end
end
- context 'when extend_only_if_life flag is given' do
+ context 'when extend_only_if_locked flag is given' do
it 'does not extend a non-existent lock' do
- @lock_info = lock_manager.lock(resource_key, ttl, extend: {value: 'hello world'}, extend_only_if_life: true)
+ @lock_info = lock_manager.lock(resource_key, ttl, extend: {value: 'hello world'}, extend_only_if_locked: true)
expect(@lock_info).to eq(false)
end
end
it '(when extending) resets the TTL, rather than adding extra time to it' do
ttl = 20000
lock_info = lock_manager.lock(resource_key, ttl)
expect(resource_key).to_not be_lockable(lock_manager, ttl)
- lock_info = lock_manager.lock(resource_key, ttl, extend: lock_info, extend_life: true)
+ lock_info = lock_manager.lock(resource_key, ttl, extend: lock_info, extend_only_if_locked: true)
expect(lock_info).not_to be_nil
expect(redis_client.pttl(resource_key)).to be_within(200).of(ttl)
end
- context 'when extend_only_if_life flag is not given' do
+ context 'when extend_only_if_locked flag is not given' do
it "sets the given value when trying to extend a non-existent lock" do
- @lock_info = lock_manager.lock(resource_key, ttl, extend: {value: 'hello world'}, extend_only_if_life: false)
+ @lock_info = lock_manager.lock(resource_key, ttl, extend: {value: 'hello world'}, extend_only_if_locked: false)
expect(@lock_info).to be_lock_info_for(resource_key)
expect(@lock_info[:value]).to eq('hello world') # really we should test what's in redis
end
end
it "doesn't extend somebody else's lock" do
@lock_info = lock_manager.lock(resource_key, ttl)
second_attempt = lock_manager.lock(resource_key, ttl)
expect(second_attempt).to eq(false)
+ end
+
+ context 'when extend_life flag is given' do
+ it 'treats it as extend_only_if_locked but warns it is deprecated' do
+ ttl = 20_000
+ lock_info = lock_manager.lock(resource_key, ttl)
+ expect(resource_key).to_not be_lockable(lock_manager, ttl)
+ expect(lock_manager).to receive(:warn).with(/DEPRECATION WARNING: The `extend_life`/)
+ lock_info = lock_manager.lock(resource_key, ttl, extend: lock_info, extend_life: true)
+ expect(lock_info).not_to be_nil
+ end
+ end
+
+ context 'when extend_only_if_life flag is given' do
+ it 'treats it as extend_only_if_locked but warns it is deprecated' do
+ ttl = 20_000
+ lock_info = lock_manager.lock(resource_key, ttl)
+ expect(resource_key).to_not be_lockable(lock_manager, ttl)
+ expect(lock_manager).to receive(:warn).with(/DEPRECATION WARNING: The `extend_only_if_life`/)
+ lock_info = lock_manager.lock(resource_key, ttl, extend: lock_info, extend_only_if_life: true)
+ expect(lock_info).not_to be_nil
+ end
end
end
context 'when lock is not available' do
before { @another_lock_info = lock_manager.lock(resource_key, ttl) }