ruby/spec/bundler/install/gemfile/lockfile_spec.rb
David Rodríguez f656d34f10 [rubygems/rubygems] Refactor specs to not try to remove folders that don't exist
This has the following benefits:

* Avoid duplicated work in some specs that first build a repo, and then
  overwrite it with a completely different set of gems.
* Reduce RSpec nesting and improve readability.
* The change also made surfaces several specs that were incorrect since
  they were unintentionally not testing the right thing.

ed430883e0
2025-03-12 18:02:09 +09:00

42 lines
1.2 KiB
Ruby

# frozen_string_literal: true
RSpec.describe "bundle install with a lockfile present" do
let(:gf) { <<-G }
source "https://gem.repo1"
gem "myrack", "1.0.0"
G
it "touches the lockfile on install even when nothing has changed" do
install_gemfile(gf)
expect { bundle :install }.to change { bundled_app_lock.mtime }
end
context "gemfile evaluation" do
let(:gf) { super() + "\n\n File.open('evals', 'a') {|f| f << %(1\n) } unless ENV['BUNDLER_SPEC_NO_APPEND']" }
context "with plugins disabled" do
before do
bundle "config set plugins false"
end
it "does not evaluate the gemfile twice when the gem is already installed" do
install_gemfile(gf)
bundle :install
with_env_vars("BUNDLER_SPEC_NO_APPEND" => "1") { expect(the_bundle).to include_gem "myrack 1.0.0" }
expect(bundled_app("evals").read.lines.to_a.size).to eq(2)
end
it "does not evaluate the gemfile twice when the gem is not installed" do
gemfile(gf)
bundle :install
with_env_vars("BUNDLER_SPEC_NO_APPEND" => "1") { expect(the_bundle).to include_gem "myrack 1.0.0" }
expect(bundled_app("evals").read.lines.to_a.size).to eq(1)
end
end
end
end