diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-22 23:08:05 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-22 23:08:05 +0000 |
commit | 7825e8363d4b2ccad8e2d3f5eeba9e26f6656911 (patch) | |
tree | 83cbcf419e0feeb2ab0fd063ed85e0776eb0081b /spec/bundler/plugins/install_spec.rb | |
parent | 73bed0312895322e0fd18310e840356c8e6af812 (diff) | |
download | ruby-7825e8363d4b2ccad8e2d3f5eeba9e26f6656911.tar.gz |
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/plugins/install_spec.rb')
-rw-r--r-- | spec/bundler/plugins/install_spec.rb | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/spec/bundler/plugins/install_spec.rb b/spec/bundler/plugins/install_spec.rb deleted file mode 100644 index 9304d78062..0000000000 --- a/spec/bundler/plugins/install_spec.rb +++ /dev/null @@ -1,257 +0,0 @@ -# frozen_string_literal: true - -RSpec.describe "bundler plugin install" do - before do - build_repo2 do - build_plugin "foo" - build_plugin "kung-foo" - end - end - - it "shows proper message when gem in not found in the source" do - bundle "plugin install no-foo --source file://#{gem_repo1}" - - expect(out).to include("Could not find") - plugin_should_not_be_installed("no-foo") - end - - it "installs from rubygems source" do - bundle "plugin install foo --source file://#{gem_repo2}" - - expect(out).to include("Installed plugin foo") - plugin_should_be_installed("foo") - end - - it "installs multiple plugins" do - bundle "plugin install foo kung-foo --source file://#{gem_repo2}" - - expect(out).to include("Installed plugin foo") - expect(out).to include("Installed plugin kung-foo") - - plugin_should_be_installed("foo", "kung-foo") - end - - it "uses the same version for multiple plugins" do - update_repo2 do - build_plugin "foo", "1.1" - build_plugin "kung-foo", "1.1" - end - - bundle "plugin install foo kung-foo --version '1.0' --source file://#{gem_repo2}" - - expect(out).to include("Installing foo 1.0") - expect(out).to include("Installing kung-foo 1.0") - plugin_should_be_installed("foo", "kung-foo") - end - - it "works with different load paths" do - build_repo2 do - build_plugin "testing" do |s| - s.write "plugins.rb", <<-RUBY - require "fubar" - class Test < Bundler::Plugin::API - command "check2" - - def exec(command, args) - puts "mate" - end - end - RUBY - s.require_paths = %w[lib src] - s.write("src/fubar.rb") - end - end - bundle "plugin install testing --source file://#{gem_repo2}" - - bundle "check2", "no-color" => false - expect(out).to eq("mate") - end - - context "malformatted plugin" do - it "fails when plugins.rb is missing" do - update_repo2 do - build_plugin "foo", "1.1" - build_plugin "kung-foo", "1.1" - end - - bundle "plugin install foo kung-foo --version '1.0' --source file://#{gem_repo2}" - - expect(out).to include("Installing foo 1.0") - expect(out).to include("Installing kung-foo 1.0") - plugin_should_be_installed("foo", "kung-foo") - - build_repo2 do - build_gem "charlie" - end - - bundle "plugin install charlie --source file://#{gem_repo2}" - - expect(out).to include("plugins.rb was not found") - - expect(global_plugin_gem("charlie-1.0")).not_to be_directory - - plugin_should_be_installed("foo", "kung-foo") - plugin_should_not_be_installed("charlie") - end - - it "fails when plugins.rb throws exception on load" do - build_repo2 do - build_plugin "chaplin" do |s| - s.write "plugins.rb", <<-RUBY - raise "I got you man" - RUBY - end - end - - bundle "plugin install chaplin --source file://#{gem_repo2}" - - expect(global_plugin_gem("chaplin-1.0")).not_to be_directory - - plugin_should_not_be_installed("chaplin") - end - end - - context "git plugins" do - it "installs form a git source" do - build_git "foo" do |s| - s.write "plugins.rb" - end - - bundle "plugin install foo --git file://#{lib_path("foo-1.0")}" - - expect(out).to include("Installed plugin foo") - plugin_should_be_installed("foo") - end - end - - context "Gemfile eval" do - it "installs plugins listed in gemfile" do - gemfile <<-G - source 'file://#{gem_repo2}' - plugin 'foo' - gem 'rack', "1.0.0" - G - - bundle "install" - - expect(out).to include("Installed plugin foo") - - expect(out).to include("Bundle complete!") - - expect(the_bundle).to include_gems("rack 1.0.0") - plugin_should_be_installed("foo") - end - - it "accepts plugin version" do - update_repo2 do - build_plugin "foo", "1.1.0" - end - - install_gemfile <<-G - source 'file://#{gem_repo2}' - plugin 'foo', "1.0" - G - - bundle "install" - - expect(out).to include("Installing foo 1.0") - - plugin_should_be_installed("foo") - - expect(out).to include("Bundle complete!") - end - - it "accepts git sources" do - build_git "ga-plugin" do |s| - s.write "plugins.rb" - end - - install_gemfile <<-G - plugin 'ga-plugin', :git => "#{lib_path("ga-plugin-1.0")}" - G - - expect(out).to include("Installed plugin ga-plugin") - plugin_should_be_installed("ga-plugin") - end - end - - context "inline gemfiles" do - it "installs the listed plugins" do - code = <<-RUBY - require "bundler/inline" - - gemfile do - source 'file://#{gem_repo2}' - plugin 'foo' - end - RUBY - - ruby code - expect(local_plugin_gem("foo-1.0", "plugins.rb")).to exist - end - end - - describe "local plugin" do - it "is installed when inside an app" do - gemfile "" - bundle "plugin install foo --source file://#{gem_repo2}" - - plugin_should_be_installed("foo") - expect(local_plugin_gem("foo-1.0")).to be_directory - end - - context "conflict with global plugin" do - before do - update_repo2 do - build_plugin "fubar" do |s| - s.write "plugins.rb", <<-RUBY - class Fubar < Bundler::Plugin::API - command "shout" - - def exec(command, args) - puts "local_one" - end - end - RUBY - end - end - - # inside the app - gemfile "source 'file://#{gem_repo2}'\nplugin 'fubar'" - bundle "install" - - update_repo2 do - build_plugin "fubar", "1.1" do |s| - s.write "plugins.rb", <<-RUBY - class Fubar < Bundler::Plugin::API - command "shout" - - def exec(command, args) - puts "global_one" - end - end - RUBY - end - end - - # outside the app - Dir.chdir tmp - bundle "plugin install fubar --source file://#{gem_repo2}" - end - - it "inside the app takes precedence over global plugin" do - Dir.chdir bundled_app - - bundle "shout" - expect(out).to eq("local_one") - end - - it "outside the app global plugin is used" do - Dir.chdir tmp - - bundle "shout" - expect(out).to eq("global_one") - end - end - end -end |