diff options
Diffstat (limited to 'spec/bundler/install/process_lock_spec.rb')
-rw-r--r-- | spec/bundler/install/process_lock_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/bundler/install/process_lock_spec.rb b/spec/bundler/install/process_lock_spec.rb new file mode 100644 index 0000000000..02217f493b --- /dev/null +++ b/spec/bundler/install/process_lock_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +RSpec.describe "process lock spec" do + describe "when an install operation is already holding a process lock" do + before { FileUtils.mkdir_p(default_bundle_path) } + + it "will not run a second concurrent bundle install until the lock is released" do + thread = Thread.new do + Bundler::ProcessLock.lock(default_bundle_path) do + sleep 1 # ignore quality_spec + expect(the_bundle).not_to include_gems "rack 1.0" + end + end + + install_gemfile! <<-G + source "file://#{gem_repo1}" + gem "rack" + G + + thread.join + expect(the_bundle).to include_gems "rack 1.0" + end + end +end |