aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler/install/gems/flex_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/bundler/install/gems/flex_spec.rb')
-rw-r--r--spec/bundler/install/gems/flex_spec.rb67
1 files changed, 64 insertions, 3 deletions
diff --git a/spec/bundler/install/gems/flex_spec.rb b/spec/bundler/install/gems/flex_spec.rb
index f9b374cf01..28ffaff3d5 100644
--- a/spec/bundler/install/gems/flex_spec.rb
+++ b/spec/bundler/install/gems/flex_spec.rb
@@ -156,7 +156,7 @@ RSpec.describe "bundle flex_install" do
end
end
- describe "when Gemfile conflicts with lockfile" do
+ describe "when running bundle install and Gemfile conflicts with lockfile" do
before(:each) do
build_repo2
install_gemfile <<-G
@@ -190,7 +190,7 @@ RSpec.describe "bundle flex_install" do
expect(err).to match(/could not find gem 'rack-obama/i)
end
- it "suggests bundle update when the Gemfile requires different versions than the lock" do
+ it "suggests deleting the Gemfile.lock file when the Gemfile requires different versions than the lock" do
bundle "config set force_ruby_platform true"
nice_error = <<-E.strip.gsub(/^ {8}/, "")
@@ -205,7 +205,7 @@ RSpec.describe "bundle flex_install" do
rack_middleware was resolved to 1.0, which depends on
rack (= 0.9.1)
- Running `bundle update` will rebuild your snapshot from scratch, using only
+ Deleting your Gemfile.lock file and running `bundle install` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
E
@@ -214,6 +214,67 @@ RSpec.describe "bundle flex_install" do
end
end
+ describe "when running bundle update and Gemfile conflicts with lockfile" do
+ before(:each) do
+ build_repo4 do
+ build_gem "jekyll-feed", "0.16.0"
+ build_gem "jekyll-feed", "0.15.1"
+
+ build_gem "github-pages", "226" do |s|
+ s.add_dependency "jekyll-feed", "0.15.1"
+ end
+ end
+
+ install_gemfile <<-G
+ source "#{file_uri_for(gem_repo4)}"
+ gem "jekyll-feed", "~> 0.12"
+ G
+
+ puts lockfile
+ lockfile <<-L
+ GEM
+ remote: #{file_uri_for(gem_repo4)}/
+ specs:
+ jekyll-feed (0.16.0)
+
+ PLATFORMS
+ #{lockfile_platforms}
+
+ DEPENDENCIES
+ jekyll-feed
+
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ L
+
+ gemfile <<-G
+ source "#{file_uri_for(gem_repo4)}"
+ gem "github-pages", "~> 226"
+ gem "jekyll-feed", "~> 0.12"
+ G
+ end
+
+ it "suggests deleting the Gemfile.lock file when the Gemfile requires different versions than the lock" do
+ nice_error = <<-E.strip.gsub(/^ {8}/, "")
+ Bundler could not find compatible versions for gem "jekyll-feed":
+ In snapshot (Gemfile.lock):
+ jekyll-feed (>= 0.16.0)
+
+ In Gemfile:
+ jekyll-feed (~> 0.12)
+
+ github-pages (~> 226) was resolved to 226, which depends on
+ jekyll-feed (= 0.15.1)
+
+ Deleting your Gemfile.lock file and running `bundle install` will rebuild your snapshot from scratch, using only
+ the gems in your Gemfile, which may resolve the conflict.
+ E
+
+ bundle :update, :raise_on_error => false
+ expect(err).to end_with(nice_error)
+ end
+ end
+
describe "subtler cases" do
before :each do
install_gemfile <<-G