2018-11-02 19:07:56 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-01-04 08:10:58 -05:00
|
|
|
RSpec.describe "bundle install", :bundler => "< 3", :ruby => ">= 2.0" do
|
2018-11-02 19:07:56 -04:00
|
|
|
before :each do
|
|
|
|
gemfile <<-G
|
|
|
|
source "file://#{gem_repo1}"
|
|
|
|
gem "rack"
|
|
|
|
G
|
|
|
|
end
|
|
|
|
|
|
|
|
before { bundle "config major_deprecations yes" }
|
|
|
|
|
|
|
|
shared_examples_for "an option to force redownloading gems" do
|
|
|
|
it "re-installs installed gems" do
|
|
|
|
rack_lib = default_bundle_path("gems/rack-1.0.0/lib/rack.rb")
|
|
|
|
|
|
|
|
bundle! :install
|
|
|
|
rack_lib.open("w") {|f| f.write("blah blah blah") }
|
|
|
|
bundle! :install, flag => true
|
|
|
|
|
|
|
|
expect(out).to include "Installing rack 1.0.0"
|
|
|
|
expect(rack_lib.open(&:read)).to eq("RACK = '1.0.0'\n")
|
|
|
|
expect(the_bundle).to include_gems "rack 1.0.0"
|
|
|
|
end
|
|
|
|
|
|
|
|
it "works on first bundle install" do
|
|
|
|
bundle! :install, flag => true
|
|
|
|
|
|
|
|
expect(out).to include "Installing rack 1.0.0"
|
|
|
|
expect(the_bundle).to include_gems "rack 1.0.0"
|
|
|
|
end
|
|
|
|
|
|
|
|
context "with a git gem" do
|
|
|
|
let!(:ref) { build_git("foo", "1.0").ref_for("HEAD", 11) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
gemfile <<-G
|
|
|
|
gem "foo", :git => "#{lib_path("foo-1.0")}"
|
|
|
|
G
|
|
|
|
end
|
|
|
|
|
|
|
|
it "re-installs installed gems" do
|
|
|
|
foo_lib = default_bundle_path("bundler/gems/foo-1.0-#{ref}/lib/foo.rb")
|
|
|
|
|
|
|
|
bundle! :install
|
|
|
|
foo_lib.open("w") {|f| f.write("blah blah blah") }
|
|
|
|
bundle! :install, flag => true
|
|
|
|
|
|
|
|
expect(foo_lib.open(&:read)).to eq("FOO = '1.0'\n")
|
|
|
|
expect(the_bundle).to include_gems "foo 1.0"
|
|
|
|
end
|
|
|
|
|
|
|
|
it "works on first bundle install" do
|
|
|
|
bundle! :install, flag => true
|
|
|
|
|
|
|
|
expect(the_bundle).to include_gems "foo 1.0"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "with --force" do
|
|
|
|
it_behaves_like "an option to force redownloading gems" do
|
|
|
|
let(:flag) { "force" }
|
|
|
|
end
|
|
|
|
|
|
|
|
it "shows a deprecation when single flag passed" do
|
|
|
|
bundle! "install --force"
|
2019-01-04 08:10:58 -05:00
|
|
|
expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`"
|
2018-11-02 19:07:56 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it "shows a deprecation when multiple flags passed" do
|
|
|
|
bundle! "install --no-color --force"
|
2019-01-04 08:10:58 -05:00
|
|
|
expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`"
|
2018-11-02 19:07:56 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "with --redownload" do
|
|
|
|
it_behaves_like "an option to force redownloading gems" do
|
|
|
|
let(:flag) { "redownload" }
|
|
|
|
end
|
|
|
|
|
|
|
|
it "does not show a deprecation when single flag passed" do
|
|
|
|
bundle! "install --redownload"
|
|
|
|
expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`"
|
|
|
|
end
|
|
|
|
|
|
|
|
it "does not show a deprecation when single multiple flags passed" do
|
|
|
|
bundle! "install --no-color --redownload"
|
|
|
|
expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|