diff options
Diffstat (limited to 'spec/bundler/other/platform_spec.rb')
-rw-r--r-- | spec/bundler/other/platform_spec.rb | 1288 |
1 files changed, 0 insertions, 1288 deletions
diff --git a/spec/bundler/other/platform_spec.rb b/spec/bundler/other/platform_spec.rb deleted file mode 100644 index bf38a05646..0000000000 --- a/spec/bundler/other/platform_spec.rb +++ /dev/null @@ -1,1288 +0,0 @@ -# frozen_string_literal: true - -RSpec.describe "bundle platform" do - context "without flags" do - let(:bundle_platform_platforms_string) do - local_platforms.reverse.map {|pl| "* #{pl}" }.join("\n") - end - - it "returns all the output" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - - #{ruby_version_correct} - - gem "foo" - G - - bundle "platform" - expect(out).to eq(<<-G.chomp) -Your platform is: #{Gem::Platform.local} - -Your app has gems that work on these platforms: -#{bundle_platform_platforms_string} - -Your Gemfile specifies a Ruby version requirement: -* ruby #{RUBY_VERSION} - -Your current platform satisfies the Ruby version requirement. -G - end - - it "returns all the output including the patchlevel" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - - #{ruby_version_correct_patchlevel} - - gem "foo" - G - - bundle "platform" - expect(out).to eq(<<-G.chomp) -Your platform is: #{Gem::Platform.local} - -Your app has gems that work on these platforms: -#{bundle_platform_platforms_string} - -Your Gemfile specifies a Ruby version requirement: -* ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL} - -Your current platform satisfies the Ruby version requirement. -G - end - - it "doesn't print ruby version requirement if it isn't specified" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - - gem "foo" - G - - bundle "platform" - expect(out).to eq(<<-G.chomp) -Your platform is: #{Gem::Platform.local} - -Your app has gems that work on these platforms: -#{bundle_platform_platforms_string} - -Your Gemfile does not specify a Ruby version requirement. -G - end - - it "doesn't match the ruby version requirement" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - - #{ruby_version_incorrect} - - gem "foo" - G - - bundle "platform" - expect(out).to eq(<<-G.chomp) -Your platform is: #{Gem::Platform.local} - -Your app has gems that work on these platforms: -#{bundle_platform_platforms_string} - -Your Gemfile specifies a Ruby version requirement: -* ruby #{not_local_ruby_version} - -Your Ruby version is #{RUBY_VERSION}, but your Gemfile specified #{not_local_ruby_version} -G - end - end - - context "--ruby" do - it "returns ruby version when explicit" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.9.3", :engine => 'ruby', :engine_version => '1.9.3' - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("ruby 1.9.3") - end - - it "defaults to MRI" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.9.3" - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("ruby 1.9.3") - end - - it "handles jruby" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.8.7", :engine => 'jruby', :engine_version => '1.6.5' - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("ruby 1.8.7 (jruby 1.6.5)") - end - - it "handles rbx" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.8.7", :engine => 'rbx', :engine_version => '1.2.4' - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("ruby 1.8.7 (rbx 1.2.4)") - end - - it "handles truffleruby" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "2.5.1", :engine => 'truffleruby', :engine_version => '1.0.0-rc6' - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("ruby 2.5.1 (truffleruby 1.0.0-rc6)") - end - - it "raises an error if engine is used but engine version is not" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.8.7", :engine => 'rbx' - - gem "foo" - G - - bundle "platform", :raise_on_error => false - - expect(exitstatus).not_to eq(0) - end - - it "raises an error if engine_version is used but engine is not" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.8.7", :engine_version => '1.2.4' - - gem "foo" - G - - bundle "platform", :raise_on_error => false - - expect(exitstatus).not_to eq(0) - end - - it "raises an error if engine version doesn't match ruby version for MRI" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "1.8.7", :engine => 'ruby', :engine_version => '1.2.4' - - gem "foo" - G - - bundle "platform", :raise_on_error => false - - expect(exitstatus).not_to eq(0) - end - - it "should print if no ruby version is specified" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - - gem "foo" - G - - bundle "platform --ruby" - - expect(out).to eq("No ruby version specified") - end - - it "handles when there is a locked requirement" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby "< 1.8.7" - G - - lockfile <<-L - GEM - remote: #{file_uri_for(gem_repo1)}/ - specs: - - PLATFORMS - ruby - - DEPENDENCIES - - RUBY VERSION - ruby 1.0.0p127 - - BUNDLED WITH - #{Bundler::VERSION} - L - - bundle "platform --ruby" - expect(out).to eq("ruby 1.0.0p127") - end - - it "handles when there is a requirement in the gemfile" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby ">= 1.8.7" - G - - bundle "platform --ruby" - expect(out).to eq("ruby 1.8.7") - end - - it "handles when there are multiple requirements in the gemfile" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - ruby ">= 1.8.7", "< 2.0.0" - G - - bundle "platform --ruby" - expect(out).to eq("ruby 1.8.7") - end - end - - let(:ruby_version_correct) { "ruby \"#{RUBY_VERSION}\", :engine => \"#{local_ruby_engine}\", :engine_version => \"#{local_engine_version}\"" } - let(:ruby_version_correct_engineless) { "ruby \"#{RUBY_VERSION}\"" } - let(:ruby_version_correct_patchlevel) { "#{ruby_version_correct}, :patchlevel => '#{RUBY_PATCHLEVEL}'" } - let(:ruby_version_incorrect) { "ruby \"#{not_local_ruby_version}\", :engine => \"#{local_ruby_engine}\", :engine_version => \"#{not_local_ruby_version}\"" } - let(:engine_incorrect) { "ruby \"#{RUBY_VERSION}\", :engine => \"#{not_local_tag}\", :engine_version => \"#{RUBY_VERSION}\"" } - let(:engine_version_incorrect) { "ruby \"#{RUBY_VERSION}\", :engine => \"#{local_ruby_engine}\", :engine_version => \"#{not_local_engine_version}\"" } - let(:patchlevel_incorrect) { "#{ruby_version_correct}, :patchlevel => '#{not_local_patchlevel}'" } - let(:patchlevel_fixnum) { "#{ruby_version_correct}, :patchlevel => #{RUBY_PATCHLEVEL}1" } - - def should_be_ruby_version_incorrect - expect(exitstatus).to eq(18) - expect(err).to be_include("Your Ruby version is #{RUBY_VERSION}, but your Gemfile specified #{not_local_ruby_version}") - end - - def should_be_engine_incorrect - expect(exitstatus).to eq(18) - expect(err).to be_include("Your Ruby engine is #{local_ruby_engine}, but your Gemfile specified #{not_local_tag}") - end - - def should_be_engine_version_incorrect - expect(exitstatus).to eq(18) - expect(err).to be_include("Your #{local_ruby_engine} version is #{local_engine_version}, but your Gemfile specified #{local_ruby_engine} #{not_local_engine_version}") - end - - def should_be_patchlevel_incorrect - expect(exitstatus).to eq(18) - expect(err).to be_include("Your Ruby patchlevel is #{RUBY_PATCHLEVEL}, but your Gemfile specified #{not_local_patchlevel}") - end - - def should_be_patchlevel_fixnum - expect(exitstatus).to eq(18) - expect(err).to be_include("The Ruby patchlevel in your Gemfile must be a string") - end - - context "bundle install" do - it "installs fine when the ruby version matches" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_correct} - G - - expect(bundled_app_lock).to exist - end - - it "installs fine with any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_correct_engineless} - G - - expect(bundled_app_lock).to exist - end - - it "installs fine when the patchlevel matches" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_correct_patchlevel} - G - - expect(bundled_app_lock).to exist - end - - it "doesn't install when the ruby version doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_incorrect} - G - - expect(bundled_app_lock).not_to exist - should_be_ruby_version_incorrect - end - - it "doesn't install when engine doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{engine_incorrect} - G - - expect(bundled_app_lock).not_to exist - should_be_engine_incorrect - end - - it "doesn't install when engine version doesn't match", :jruby do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{engine_version_incorrect} - G - - expect(bundled_app_lock).not_to exist - should_be_engine_version_incorrect - end - - it "doesn't install when patchlevel doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - - expect(bundled_app_lock).not_to exist - should_be_patchlevel_incorrect - end - end - - context "bundle check" do - it "checks fine when the ruby version matches" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_correct} - G - - bundle :check - expect(out).to match(/\AResolving dependencies\.\.\.\.*\nThe Gemfile's dependencies are satisfied\z/) - end - - it "checks fine with any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_correct_engineless} - G - - bundle :check - expect(out).to match(/\AResolving dependencies\.\.\.\.*\nThe Gemfile's dependencies are satisfied\z/) - end - - it "fails when ruby version doesn't match" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{ruby_version_incorrect} - G - - bundle :check, :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails when engine doesn't match" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{engine_incorrect} - G - - bundle :check, :raise_on_error => false - should_be_engine_incorrect - end - - it "fails when engine version doesn't match", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{engine_version_incorrect} - G - - bundle :check, :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - G - - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - - bundle :check, :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle update" do - before do - build_repo2 - - install_gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - G - end - - it "updates successfully when the ruby version matches" do - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - - #{ruby_version_correct} - G - update_repo2 do - build_gem "rack", "1.2" do |s| - s.executables = "rackup" - end - - build_gem "activesupport", "3.0" - end - - bundle "update", :all => true - expect(the_bundle).to include_gems "rack 1.2", "rack-obama 1.0", "activesupport 3.0" - end - - it "updates fine with any engine", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - - #{ruby_version_correct_engineless} - G - update_repo2 do - build_gem "rack", "1.2" do |s| - s.executables = "rackup" - end - - build_gem "activesupport", "3.0" - end - - bundle "update", :all => true - expect(the_bundle).to include_gems "rack 1.2", "rack-obama 1.0", "activesupport 3.0" - end - - it "fails when ruby version doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - - #{ruby_version_incorrect} - G - update_repo2 do - build_gem "activesupport", "3.0" - end - - bundle :update, :all => true, :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails when ruby engine doesn't match", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - - #{engine_incorrect} - G - update_repo2 do - build_gem "activesupport", "3.0" - end - - bundle :update, :all => true, :raise_on_error => false - should_be_engine_incorrect - end - - it "fails when ruby engine version doesn't match", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport" - gem "rack-obama" - - #{engine_version_incorrect} - G - update_repo2 do - build_gem "activesupport", "3.0" - end - - bundle :update, :all => true, :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - update_repo2 do - build_gem "activesupport", "3.0" - end - - bundle :update, :all => true, :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle info" do - before do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - G - end - - it "prints path if ruby version is correct" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - - #{ruby_version_correct} - G - - bundle "info rails --path" - expect(out).to eq(default_bundle_path("gems", "rails-2.3.2").to_s) - end - - it "prints path if ruby version is correct for any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - - #{ruby_version_correct_engineless} - G - - bundle "info rails --path" - expect(out).to eq(default_bundle_path("gems", "rails-2.3.2").to_s) - end - - it "fails if ruby version doesn't match", :bundler => "< 3" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - - #{ruby_version_incorrect} - G - - bundle "show rails", :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails if engine doesn't match", :bundler => "< 3" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - - #{engine_incorrect} - G - - bundle "show rails", :raise_on_error => false - should_be_engine_incorrect - end - - it "fails if engine version doesn't match", :bundler => "< 3", :jruby => true do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rails" - - #{engine_version_incorrect} - G - - bundle "show rails", :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match", :bundler => "< 3" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - update_repo2 do - build_gem "activesupport", "3.0" - end - - bundle "show rails", :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle cache" do - before do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - G - end - - it "copies the .gem file to vendor/cache when ruby version matches" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_correct} - G - - bundle :cache - expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist - end - - it "copies the .gem file to vendor/cache when ruby version matches for any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_correct_engineless} - G - - bundle :cache - expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist - end - - it "fails if the ruby version doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails if the engine doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{engine_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_engine_incorrect - end - - it "fails if the engine version doesn't match", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{engine_version_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle pack" do - before do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - G - end - - it "copies the .gem file to vendor/cache when ruby version matches" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_correct} - G - - bundle :cache - expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist - end - - it "copies the .gem file to vendor/cache when ruby version matches any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_correct_engineless} - G - - bundle :cache - expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist - end - - it "fails if the ruby version doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{ruby_version_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails if the engine doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{engine_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_engine_incorrect - end - - it "fails if the engine version doesn't match", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem 'rack' - - #{engine_version_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - - bundle :cache, :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle exec" do - before do - ENV["BUNDLER_FORCE_TTY"] = "true" - system_gems "rack-1.0.0", "rack-0.9.1", :path => default_bundle_path - end - - it "activates the correct gem when ruby version matches" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack", "0.9.1" - - #{ruby_version_correct} - G - - bundle "exec rackup" - expect(out).to include("0.9.1") - end - - it "activates the correct gem when ruby version matches any engine", :jruby do - system_gems "rack-1.0.0", "rack-0.9.1", :path => default_bundle_path - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack", "0.9.1" - - #{ruby_version_correct_engineless} - G - - bundle "exec rackup" - expect(out).to include("0.9.1") - end - - it "fails when the ruby version doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack", "0.9.1" - - #{ruby_version_incorrect} - G - - bundle "exec rackup", :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails when the engine doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack", "0.9.1" - - #{engine_incorrect} - G - - bundle "exec rackup", :raise_on_error => false - should_be_engine_incorrect - end - - # it "fails when the engine version doesn't match", :jruby do - # gemfile <<-G - # gem "rack", "0.9.1" - # - # #{engine_version_incorrect} - # G - # - # bundle "exec rackup" - # should_be_engine_version_incorrect - # end - - it "fails when patchlevel doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - - #{patchlevel_incorrect} - G - - bundle "exec rackup", :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "bundle console", :bundler => "< 3" do - before do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - G - end - - it "starts IRB with the default group loaded when ruby version matches", :readline do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{ruby_version_correct} - G - - bundle "console" do |input, _, _| - input.puts("puts RACK") - input.puts("exit") - end - expect(out).to include("0.9.1") - end - - it "starts IRB with the default group loaded when ruby version matches", :readline, :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{ruby_version_correct_engineless} - G - - bundle "console" do |input, _, _| - input.puts("puts RACK") - input.puts("exit") - end - expect(out).to include("0.9.1") - end - - it "fails when ruby version doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{ruby_version_incorrect} - G - - bundle "console", :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails when engine doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{engine_incorrect} - G - - bundle "console", :raise_on_error => false - should_be_engine_incorrect - end - - it "fails when engine version doesn't match", :jruby do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{engine_version_incorrect} - G - - bundle "console", :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "rack" - gem "activesupport", :group => :test - gem "rack_middleware", :group => :development - - #{patchlevel_incorrect} - G - - bundle "console", :raise_on_error => false - should_be_patchlevel_incorrect - end - end - - context "Bundler.setup" do - before do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack", :group => :test - G - - ENV["BUNDLER_FORCE_TTY"] = "true" - end - - it "makes a Gemfile.lock if setup succeeds" do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{ruby_version_correct} - G - - FileUtils.rm(bundled_app_lock) - - run "1" - expect(bundled_app_lock).to exist - end - - it "makes a Gemfile.lock if setup succeeds for any engine", :jruby do - install_gemfile <<-G - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{ruby_version_correct_engineless} - G - - FileUtils.rm(bundled_app_lock) - - run "1" - expect(bundled_app_lock).to exist - end - - it "fails when ruby version doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{ruby_version_incorrect} - G - - FileUtils.rm(bundled_app_lock) - - ruby "require 'bundler/setup'", :env => { "BUNDLER_VERSION" => Bundler::VERSION }, :raise_on_error => false - - expect(bundled_app_lock).not_to exist - should_be_ruby_version_incorrect - end - - it "fails when engine doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{engine_incorrect} - G - - FileUtils.rm(bundled_app_lock) - - ruby "require 'bundler/setup'", :env => { "BUNDLER_VERSION" => Bundler::VERSION }, :raise_on_error => false - - expect(bundled_app_lock).not_to exist - should_be_engine_incorrect - end - - it "fails when engine version doesn't match", :jruby do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{engine_version_incorrect} - G - - FileUtils.rm(bundled_app_lock) - - ruby "require 'bundler/setup'", :env => { "BUNDLER_VERSION" => Bundler::VERSION }, :raise_on_error => false - - expect(bundled_app_lock).not_to exist - should_be_engine_version_incorrect - end - - it "fails when patchlevel doesn't match" do - install_gemfile <<-G, :raise_on_error => false - source "#{file_uri_for(gem_repo1)}" - gem "yard" - gem "rack" - - #{patchlevel_incorrect} - G - - FileUtils.rm(bundled_app_lock) - - ruby "require 'bundler/setup'", :env => { "BUNDLER_VERSION" => Bundler::VERSION }, :raise_on_error => false - - expect(bundled_app_lock).not_to exist - should_be_patchlevel_incorrect - end - end - - context "bundle outdated" do - before do - build_repo2 do - build_git "foo", :path => lib_path("foo") - end - - install_gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - G - end - - it "returns list of outdated gems when the ruby version matches" do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{ruby_version_correct} - G - - bundle "outdated", :raise_on_error => false - - expected_output = <<~TABLE.gsub("x", "\\\h").tr(".", "\.").strip - Gem Current Latest Requested Groups - activesupport 2.3.5 3.0 = 2.3.5 default - foo 1.0 xxxxxxx 1.0 xxxxxxx >= 0 default - TABLE - - expect(out).to match(Regexp.new(expected_output)) - end - - it "returns list of outdated gems when the ruby version matches for any engine", :jruby do - bundle :install - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{ruby_version_correct_engineless} - G - - bundle "outdated", :raise_on_error => false - - expected_output = <<~TABLE.gsub("x", "\\\h").tr(".", "\.").strip - Gem Current Latest Requested Groups - activesupport 2.3.5 3.0 = 2.3.5 default - foo 1.0 xxxxxxx 1.0 xxxxxxx >= 0 default - TABLE - - expect(out).to match(Regexp.new(expected_output)) - end - - it "fails when the ruby version doesn't match" do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{ruby_version_incorrect} - G - - bundle "outdated", :raise_on_error => false - should_be_ruby_version_incorrect - end - - it "fails when the engine doesn't match" do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{engine_incorrect} - G - - bundle "outdated", :raise_on_error => false - should_be_engine_incorrect - end - - it "fails when the engine version doesn't match", :jruby do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{engine_version_incorrect} - G - - bundle "outdated", :raise_on_error => false - should_be_engine_version_incorrect - end - - it "fails when the patchlevel doesn't match", :jruby do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{patchlevel_incorrect} - G - - bundle "outdated", :raise_on_error => false - should_be_patchlevel_incorrect - end - - it "fails when the patchlevel is a fixnum", :jruby do - update_repo2 do - build_gem "activesupport", "3.0" - update_git "foo", :path => lib_path("foo") - end - - gemfile <<-G - source "#{file_uri_for(gem_repo2)}" - gem "activesupport", "2.3.5" - gem "foo", :git => "#{lib_path("foo")}" - - #{patchlevel_fixnum} - G - - bundle "outdated", :raise_on_error => false - should_be_patchlevel_fixnum - end - end -end |