summaryrefslogtreecommitdiff
path: root/spec/bundler/update
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-22 23:08:05 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-22 23:08:05 +0000
commit7825e8363d4b2ccad8e2d3f5eeba9e26f6656911 (patch)
tree83cbcf419e0feeb2ab0fd063ed85e0776eb0081b /spec/bundler/update
parent73bed0312895322e0fd18310e840356c8e6af812 (diff)
Postponing the Bundler merge.
I faced a big issue about Bundler with ruby core. I have no time to resolve it issue before 2.5 final release. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/bundler/update')
-rw-r--r--spec/bundler/update/gems/post_install_spec.rb76
-rw-r--r--spec/bundler/update/git_spec.rb374
-rw-r--r--spec/bundler/update/path_spec.rb18
3 files changed, 0 insertions, 468 deletions
diff --git a/spec/bundler/update/gems/post_install_spec.rb b/spec/bundler/update/gems/post_install_spec.rb
deleted file mode 100644
index 2fb3547806..0000000000
--- a/spec/bundler/update/gems/post_install_spec.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-# frozen_string_literal: true
-
-RSpec.describe "bundle update" do
- let(:config) {}
-
- before do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem 'rack', "< 1.0"
- gem 'thin'
- G
-
- bundle! "config #{config}" if config
-
- bundle! :install
- end
-
- shared_examples "a config observer" do
- context "when ignore post-install messages for gem is set" do
- let(:config) { "ignore_messages.rack true" }
-
- it "doesn't display gem's post-install message" do
- expect(out).not_to include("Rack's post install message")
- end
- end
-
- context "when ignore post-install messages for all gems" do
- let(:config) { "ignore_messages true" }
-
- it "doesn't display any post-install messages" do
- expect(out).not_to include("Post-install message")
- end
- end
- end
-
- shared_examples "a post-install message outputter" do
- it "should display post-install messages for updated gems" do
- expect(out).to include("Post-install message from rack:")
- expect(out).to include("Rack's post install message")
- end
-
- it "should not display the post-install message for non-updated gems" do
- expect(out).not_to include("Thin's post install message")
- end
- end
-
- context "when listed gem is updated" do
- before do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem 'rack'
- gem 'thin'
- G
-
- bundle! :update, :all => bundle_update_requires_all?
- end
-
- it_behaves_like "a post-install message outputter"
- it_behaves_like "a config observer"
- end
-
- context "when dependency triggers update" do
- before do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem 'rack-obama'
- gem 'thin'
- G
-
- bundle! :update, :all => bundle_update_requires_all?
- end
-
- it_behaves_like "a post-install message outputter"
- it_behaves_like "a config observer"
- end
-end
diff --git a/spec/bundler/update/git_spec.rb b/spec/bundler/update/git_spec.rb
deleted file mode 100644
index b4cbb79434..0000000000
--- a/spec/bundler/update/git_spec.rb
+++ /dev/null
@@ -1,374 +0,0 @@
-# frozen_string_literal: true
-
-RSpec.describe "bundle update" do
- describe "git sources" do
- it "floats on a branch when :branch is used" do
- build_git "foo", "1.0"
- update_git "foo", :branch => "omg"
-
- install_gemfile <<-G
- git "#{lib_path("foo-1.0")}", :branch => "omg" do
- gem 'foo'
- end
- G
-
- update_git "foo", :branch => "omg" do |s|
- s.write "lib/foo.rb", "FOO = '1.1'"
- end
-
- bundle "update", :all => bundle_update_requires_all?
-
- expect(the_bundle).to include_gems "foo 1.1"
- end
-
- it "updates correctly when you have like craziness" do
- build_lib "activesupport", "3.0", :path => lib_path("rails/activesupport")
- build_git "rails", "3.0", :path => lib_path("rails") do |s|
- s.add_dependency "activesupport", "= 3.0"
- end
-
- install_gemfile! <<-G
- gem "rails", :git => "#{lib_path("rails")}"
- G
-
- bundle! "update rails"
- expect(the_bundle).to include_gems "rails 3.0", "activesupport 3.0"
- end
-
- it "floats on a branch when :branch is used and the source is specified in the update" do
- build_git "foo", "1.0", :path => lib_path("foo")
- update_git "foo", :branch => "omg", :path => lib_path("foo")
-
- install_gemfile <<-G
- git "#{lib_path("foo")}", :branch => "omg" do
- gem 'foo'
- end
- G
-
- update_git "foo", :branch => "omg", :path => lib_path("foo") do |s|
- s.write "lib/foo.rb", "FOO = '1.1'"
- end
-
- bundle "update --source foo"
-
- expect(the_bundle).to include_gems "foo 1.1"
- end
-
- it "floats on master when updating all gems that are pinned to the source even if you have child dependencies" do
- build_git "foo", :path => lib_path("foo")
- build_gem "bar", :to_bundle => true do |s|
- s.add_dependency "foo"
- end
-
- install_gemfile <<-G
- gem "foo", :git => "#{lib_path("foo")}"
- gem "bar"
- G
-
- update_git "foo", :path => lib_path("foo") do |s|
- s.write "lib/foo.rb", "FOO = '1.1'"
- end
-
- bundle "update foo"
-
- expect(the_bundle).to include_gems "foo 1.1"
- end
-
- it "notices when you change the repo url in the Gemfile" do
- build_git "foo", :path => lib_path("foo_one")
- build_git "foo", :path => lib_path("foo_two")
-
- install_gemfile <<-G
- gem "foo", "1.0", :git => "#{lib_path("foo_one")}"
- G
-
- FileUtils.rm_rf lib_path("foo_one")
-
- install_gemfile <<-G
- gem "foo", "1.0", :git => "#{lib_path("foo_two")}"
- G
-
- expect(err).to lack_errors
- expect(out).to include("Fetching #{lib_path}/foo_two")
- expect(out).to include("Bundle complete!")
- end
-
- it "fetches tags from the remote" do
- build_git "foo"
- @remote = build_git("bar", :bare => true)
- update_git "foo", :remote => @remote.path
- update_git "foo", :push => "master"
-
- install_gemfile <<-G
- gem 'foo', :git => "#{@remote.path}"
- G
-
- # Create a new tag on the remote that needs fetching
- update_git "foo", :tag => "fubar"
- update_git "foo", :push => "fubar"
-
- gemfile <<-G
- gem 'foo', :git => "#{@remote.path}", :tag => "fubar"
- G
-
- bundle "update", :all => bundle_update_requires_all?
- expect(exitstatus).to eq(0) if exitstatus
- end
-
- describe "with submodules" do
- before :each do
- build_repo4 do
- build_gem "submodule" do |s|
- s.write "lib/submodule.rb", "puts 'GEM'"
- end
- end
-
- build_git "submodule", "1.0" do |s|
- s.write "lib/submodule.rb", "puts 'GIT'"
- end
-
- build_git "has_submodule", "1.0" do |s|
- s.add_dependency "submodule"
- end
-
- Dir.chdir(lib_path("has_submodule-1.0")) do
- sys_exec "git submodule add #{lib_path("submodule-1.0")} submodule-1.0"
- `git commit -m "submodulator"`
- end
- end
-
- it "it unlocks the source when submodules are added to a git source" do
- install_gemfile <<-G
- source "file:#{gem_repo4}"
- git "#{lib_path("has_submodule-1.0")}" do
- gem "has_submodule"
- end
- G
-
- run "require 'submodule'"
- expect(out).to eq("GEM")
-
- install_gemfile <<-G
- source "file:#{gem_repo4}"
- git "#{lib_path("has_submodule-1.0")}", :submodules => true do
- gem "has_submodule"
- end
- G
-
- run "require 'submodule'"
- expect(out).to eq("GIT")
- end
-
- it "unlocks the source when submodules are removed from git source", :git => ">= 2.9.0" do
- install_gemfile! <<-G
- source "file:#{gem_repo4}"
- git "#{lib_path("has_submodule-1.0")}", :submodules => true do
- gem "has_submodule"
- end
- G
-
- run! "require 'submodule'"
- expect(out).to eq("GIT")
-
- install_gemfile! <<-G
- source "file:#{gem_repo4}"
- git "#{lib_path("has_submodule-1.0")}" do
- gem "has_submodule"
- end
- G
-
- run! "require 'submodule'"
- expect(out).to eq("GEM")
- end
- end
-
- it "errors with a message when the .git repo is gone" do
- build_git "foo", "1.0"
-
- install_gemfile <<-G
- gem "foo", :git => "#{lib_path("foo-1.0")}"
- G
-
- lib_path("foo-1.0").join(".git").rmtree
-
- bundle :update, :all => bundle_update_requires_all?
- expect(last_command.bundler_err).to include(lib_path("foo-1.0").to_s).
- and match(/Git error: command `git fetch.+has failed/)
- end
-
- it "should not explode on invalid revision on update of gem by name" do
- build_git "rack", "0.8"
-
- build_git "rack", "0.8", :path => lib_path("local-rack") do |s|
- s.write "lib/rack.rb", "puts :LOCAL"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master"
- G
-
- bundle %(config local.rack #{lib_path("local-rack")})
- bundle "update rack"
- expect(out).to include("Bundle updated!")
- end
-
- it "shows the previous version of the gem" do
- build_git "rails", "3.0", :path => lib_path("rails")
-
- install_gemfile <<-G
- gem "rails", :git => "#{lib_path("rails")}"
- G
-
- lockfile <<-G
- GIT
- remote: #{lib_path("rails")}
- specs:
- rails (2.3.2)
-
- PLATFORMS
- #{generic_local_platform}
-
- DEPENDENCIES
- rails!
- G
-
- bundle "update", :all => bundle_update_requires_all?
- expect(out).to include("Using rails 3.0 (was 2.3.2) from #{lib_path("rails")} (at master@#{revision_for(lib_path("rails"))[0..6]})")
- end
- end
-
- describe "with --source flag" do
- before :each do
- build_repo2
- @git = build_git "foo", :path => lib_path("foo") do |s|
- s.executables = "foobar"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo2}"
- git "#{lib_path("foo")}" do
- gem 'foo'
- end
- gem 'rack'
- G
- end
-
- it "updates the source" do
- update_git "foo", :path => @git.path
-
- bundle "update --source foo"
-
- in_app_root do
- run <<-RUBY
- require 'foo'
- puts "WIN" if defined?(FOO_PREV_REF)
- RUBY
-
- expect(out).to eq("WIN")
- end
- end
-
- it "unlocks gems that were originally pulled in by the source" do
- update_git "foo", "2.0", :path => @git.path
-
- bundle "update --source foo"
- expect(the_bundle).to include_gems "foo 2.0"
- end
-
- it "leaves all other gems frozen" do
- update_repo2
- update_git "foo", :path => @git.path
-
- bundle "update --source foo"
- expect(the_bundle).to include_gems "rack 1.0"
- end
- end
-
- context "when the gem and the repository have different names" do
- before :each do
- build_repo2
- @git = build_git "foo", :path => lib_path("bar")
-
- install_gemfile <<-G
- source "file://localhost#{gem_repo2}"
- git "#{lib_path("bar")}" do
- gem 'foo'
- end
- gem 'rack'
- G
- end
-
- it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "< 2" do
- spec_lines = lib_path("bar/foo.gemspec").read.split("\n")
- spec_lines[5] = "s.version = '2.0'"
-
- update_git "foo", "2.0", :path => @git.path do |s|
- s.write "foo.gemspec", spec_lines.join("\n")
- end
-
- ref = @git.ref_for "master"
-
- bundle "update --source bar"
-
- lockfile_should_be <<-G
- GIT
- remote: #{@git.path}
- revision: #{ref}
- specs:
- foo (2.0)
-
- GEM
- remote: file://localhost#{gem_repo2}/
- specs:
- rack (1.0.0)
-
- PLATFORMS
- ruby
-
- DEPENDENCIES
- foo!
- rack
-
- BUNDLED WITH
- #{Bundler::VERSION}
- G
- end
-
- it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "2" do
- spec_lines = lib_path("bar/foo.gemspec").read.split("\n")
- spec_lines[5] = "s.version = '2.0'"
-
- update_git "foo", "2.0", :path => @git.path do |s|
- s.write "foo.gemspec", spec_lines.join("\n")
- end
-
- ref = @git.ref_for "master"
-
- bundle "update --source bar"
-
- lockfile_should_be <<-G
- GEM
- remote: file://localhost#{gem_repo2}/
- specs:
- rack (1.0.0)
-
- GIT
- remote: #{@git.path}
- revision: #{ref}
- specs:
- foo (2.0)
-
- PLATFORMS
- #{lockfile_platforms}
-
- DEPENDENCIES
- foo!
- rack
-
- BUNDLED WITH
- #{Bundler::VERSION}
- G
- end
- end
-end
diff --git a/spec/bundler/update/path_spec.rb b/spec/bundler/update/path_spec.rb
deleted file mode 100644
index 38c125e04b..0000000000
--- a/spec/bundler/update/path_spec.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-RSpec.describe "path sources" do
- describe "bundle update --source" do
- it "shows the previous version of the gem when updated from path source" do
- build_lib "activesupport", "2.3.5", :path => lib_path("rails/activesupport")
-
- install_gemfile <<-G
- gem "activesupport", :path => "#{lib_path("rails/activesupport")}"
- G
-
- build_lib "activesupport", "3.0", :path => lib_path("rails/activesupport")
-
- bundle "update --source activesupport"
- expect(out).to include("Using activesupport 3.0 (was 2.3.5) from source at `#{lib_path("rails/activesupport")}`")
- end
- end
-end