summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/exclusive_lease_spec.rb
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2016-03-10 12:52:19 +0100
committerJacob Vosmaer <contact@jacobvosmaer.nl>2016-03-10 12:52:19 +0100
commit662c4df74826d123f354e408583f24c24cd1761b (patch)
treea13ba58ddfa955faf2c48dbebc77ace16fe2ef3f /spec/lib/gitlab/exclusive_lease_spec.rb
parente7df3f51c9cc246279da36c9488b4c591f30b866 (diff)
downloadgitlab-ce-662c4df74826d123f354e408583f24c24cd1761b.tar.gz
Add tests for ExclusiveLease
Diffstat (limited to 'spec/lib/gitlab/exclusive_lease_spec.rb')
-rw-r--r--spec/lib/gitlab/exclusive_lease_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/lib/gitlab/exclusive_lease_spec.rb b/spec/lib/gitlab/exclusive_lease_spec.rb
new file mode 100644
index 00000000000..aacd1707165
--- /dev/null
+++ b/spec/lib/gitlab/exclusive_lease_spec.rb
@@ -0,0 +1,21 @@
+require 'spec_helper'
+
+describe Gitlab::ExclusiveLease do
+ it 'is exclusive' do
+ lease = Gitlab::ExclusiveLease.new(unique_key, timeout: 3600)
+ expect(lease.try_obtain).to eq(true)
+ expect(lease.try_obtain).to eq(false)
+ end
+
+ it 'expires' do
+ timeout = 1
+ lease = Gitlab::ExclusiveLease.new(unique_key, timeout: timeout)
+ lease.try_obtain
+ sleep(2 * timeout)
+ expect(lease.try_obtain).to eq(true)
+ end
+
+ def unique_key
+ SecureRandom.hex(10)
+ end
+end