diff options
Diffstat (limited to 'spec/bundler/update/gemfile_spec.rb')
-rw-r--r-- | spec/bundler/update/gemfile_spec.rb | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/spec/bundler/update/gemfile_spec.rb b/spec/bundler/update/gemfile_spec.rb new file mode 100644 index 0000000000..f59f3a2d32 --- /dev/null +++ b/spec/bundler/update/gemfile_spec.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true + +RSpec.describe "bundle update" do + context "with --gemfile" do + it "finds the gemfile" do + gemfile bundled_app("NotGemfile"), <<-G + source "file://#{gem_repo1}" + gem 'rack' + G + + bundle! :install, :gemfile => bundled_app("NotGemfile") + bundle! :update, :gemfile => bundled_app("NotGemfile"), :all => bundle_update_requires_all? + + # Specify BUNDLE_GEMFILE for `the_bundle` + # to retrieve the proper Gemfile + ENV["BUNDLE_GEMFILE"] = "NotGemfile" + expect(the_bundle).to include_gems "rack 1.0.0" + end + end + + context "with gemfile set via config" do + before do + gemfile bundled_app("NotGemfile"), <<-G + source "file://#{gem_repo1}" + gem 'rack' + G + + bundle "config --local gemfile #{bundled_app("NotGemfile")}" + bundle! :install + end + + it "uses the gemfile to update" do + bundle! "update", :all => bundle_update_requires_all? + bundle "list" + + expect(out).to include("rack (1.0.0)") + end + + it "uses the gemfile while in a subdirectory" do + bundled_app("subdir").mkpath + Dir.chdir(bundled_app("subdir")) do + bundle! "update", :all => bundle_update_requires_all? + bundle "list" + + expect(out).to include("rack (1.0.0)") + end + end + end + + context "with prefer_gems_rb set" do + before { bundle! "config prefer_gems_rb true" } + + it "prefers gems.rb to Gemfile" do + create_file("gems.rb", "gem 'bundler'") + create_file("Gemfile", "raise 'wrong Gemfile!'") + + bundle! :install + bundle! :update, :all => bundle_update_requires_all? + + expect(bundled_app("gems.rb")).to be_file + expect(bundled_app("Gemfile.lock")).not_to be_file + + expect(the_bundle).to include_gem "bundler #{Bundler::VERSION}" + end + end +end |