diff options
Diffstat (limited to 'spec/bundler/runtime/inline_spec.rb')
-rw-r--r-- | spec/bundler/runtime/inline_spec.rb | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/spec/bundler/runtime/inline_spec.rb b/spec/bundler/runtime/inline_spec.rb deleted file mode 100644 index 18ca246199..0000000000 --- a/spec/bundler/runtime/inline_spec.rb +++ /dev/null @@ -1,266 +0,0 @@ -# frozen_string_literal: true - -RSpec.describe "bundler/inline#gemfile" do - def script(code, options = {}) - requires = ["bundler/inline"] - requires.unshift File.expand_path("../../support/artifice/" + options.delete(:artifice) + ".rb", __FILE__) if options.key?(:artifice) - requires = requires.map {|r| "require '#{r}'" }.join("\n") - @out = ruby("#{requires}\n\n" + code, options) - end - - before :each do - build_lib "one", "1.0.0" do |s| - s.write "lib/baz.rb", "puts 'baz'" - s.write "lib/qux.rb", "puts 'qux'" - end - - build_lib "two", "1.0.0" do |s| - s.write "lib/two.rb", "puts 'two'" - s.add_dependency "three", "= 1.0.0" - end - - build_lib "three", "1.0.0" do |s| - s.write "lib/three.rb", "puts 'three'" - s.add_dependency "seven", "= 1.0.0" - end - - build_lib "four", "1.0.0" do |s| - s.write "lib/four.rb", "puts 'four'" - end - - build_lib "five", "1.0.0", :no_default => true do |s| - s.write "lib/mofive.rb", "puts 'five'" - end - - build_lib "six", "1.0.0" do |s| - s.write "lib/six.rb", "puts 'six'" - end - - build_lib "seven", "1.0.0" do |s| - s.write "lib/seven.rb", "puts 'seven'" - end - - build_lib "eight", "1.0.0" do |s| - s.write "lib/eight.rb", "puts 'eight'" - end - end - - it "requires the gems" do - script <<-RUBY - gemfile do - path "#{lib_path}" do - gem "two" - end - end - RUBY - - expect(out).to eq("two") - expect(exitstatus).to be_zero if exitstatus - - script <<-RUBY - gemfile do - path "#{lib_path}" do - gem "eleven" - end - end - - puts "success" - RUBY - - expect(err).to include "Could not find gem 'eleven'" - expect(out).not_to include "success" - - script <<-RUBY - gemfile(true) do - source "file://#{gem_repo1}" - gem "rack" - end - RUBY - - expect(out).to include("Rack's post install message") - expect(exitstatus).to be_zero if exitstatus - - script <<-RUBY, :artifice => "endpoint" - gemfile(true) do - source "https://notaserver.com" - gem "activesupport", :require => true - end - RUBY - - expect(out).to include("Installing activesupport") - err.gsub! %r{.*lib/sinatra/base\.rb:\d+: warning: constant ::Fixnum is deprecated$}, "" - err.strip! - expect(err).to lack_errors - expect(exitstatus).to be_zero if exitstatus - end - - it "lets me use my own ui object" do - script <<-RUBY, :artifice => "endpoint" - require 'bundler' - class MyBundlerUI < Bundler::UI::Silent - def confirm(msg, newline = nil) - puts "CONFIRMED!" - end - end - gemfile(true, :ui => MyBundlerUI.new) do - source "https://notaserver.com" - gem "activesupport", :require => true - end - RUBY - - expect(out).to eq("CONFIRMED!\nCONFIRMED!") - expect(exitstatus).to be_zero if exitstatus - end - - it "raises an exception if passed unknown arguments" do - script <<-RUBY - gemfile(true, :arglebargle => true) do - path "#{lib_path}" - gem "two" - end - - puts "success" - RUBY - expect(err).to include "Unknown options: arglebargle" - expect(out).not_to include "success" - end - - it "does not mutate the option argument" do - script <<-RUBY - require 'bundler' - options = { :ui => Bundler::UI::Shell.new } - gemfile(false, options) do - path "#{lib_path}" do - gem "two" - end - end - puts "OKAY" if options.key?(:ui) - RUBY - - expect(out).to match("OKAY") - expect(exitstatus).to be_zero if exitstatus - end - - it "installs quietly if necessary when the install option is not set" do - script <<-RUBY - gemfile do - source "file://#{gem_repo1}" - gem "rack" - end - - puts RACK - RUBY - - expect(out).to eq("1.0.0") - expect(err).to be_empty - expect(exitstatus).to be_zero if exitstatus - end - - it "installs quietly from git if necessary when the install option is not set" do - build_git "foo", "1.0.0" - baz_ref = build_git("baz", "2.0.0").ref_for("HEAD") - script <<-RUBY - gemfile do - gem "foo", :git => #{lib_path("foo-1.0.0").to_s.dump} - gem "baz", :git => #{lib_path("baz-2.0.0").to_s.dump}, :ref => #{baz_ref.dump} - end - - puts FOO - puts BAZ - RUBY - - expect(out).to eq("1.0.0\n2.0.0") - expect(err).to be_empty - expect(exitstatus).to be_zero if exitstatus - end - - it "allows calling gemfile twice" do - script <<-RUBY - gemfile do - path "#{lib_path}" do - gem "two" - end - end - - gemfile do - path "#{lib_path}" do - gem "four" - end - end - RUBY - - expect(out).to eq("two\nfour") - expect(err).to be_empty - expect(exitstatus).to be_zero if exitstatus - end - - it "installs inline gems when a Gemfile.lock is present" do - gemfile <<-G - source "https://notaserver.com" - gem "rake" - G - - lockfile <<-G - GEM - remote: https://rubygems.org/ - specs: - rake (11.3.0) - - PLATFORMS - ruby - - DEPENDENCIES - rake - - BUNDLED WITH - 1.13.6 - G - - in_app_root do - script <<-RUBY - gemfile do - source "file://#{gem_repo1}" - gem "rack" - end - - puts RACK - RUBY - end - - expect(err).to be_empty - expect(exitstatus).to be_zero if exitstatus - end - - it "installs inline gems when BUNDLE_GEMFILE is set to an empty string" do - ENV["BUNDLE_GEMFILE"] = "" - - in_app_root do - script <<-RUBY - gemfile do - source "file://#{gem_repo1}" - gem "rack" - end - - puts RACK - RUBY - end - - expect(err).to be_empty - expect(exitstatus).to be_zero if exitstatus - end - - it "installs inline gems when BUNDLE_BIN is set" do - ENV["BUNDLE_BIN"] = "/usr/local/bundle/bin" - - script <<-RUBY - gemfile do - source "file://#{gem_repo1}" - gem "rack" # has the rackup executable - end - - puts RACK - RUBY - expect(last_command).to be_success - expect(last_command.stdout).to eq "1.0.0" - end -end |