diff --git a/bundler/spec/dependabot/bundler/file_updater_spec.rb b/bundler/spec/dependabot/bundler/file_updater_spec.rb index 4078c4f7bb1..cbd4bac0207 100644 --- a/bundler/spec/dependabot/bundler/file_updater_spec.rb +++ b/bundler/spec/dependabot/bundler/file_updater_spec.rb @@ -1443,6 +1443,33 @@ end end + context "for a gem that depends on bundler" do + subject(:updated_gemfile) do + updated_files.find { |f| f.name == "Gemfile" } + end + + let(:dependency_files) { bundler_project_dependency_files("guard_bundler") } + let(:dependency_name) { "guard-bundler" } + let(:dependency_version) { "3.0.0" } + let(:dependency_previous_version) { "2.2.1" } + let(:requirements) do + [{ + file: "Gemfile", + requirement: "~> 2.2.1", + groups: [], + source: nil + }] + end + + it "raises an error", :bundler_v1_only do + expect { updated_gemfile }.to raise_error(/Bundler could not find compatible versions for gem "bundler"/) + end + + it "returns the latest version", :bundler_v2_only do + expect(updated_gemfile.content).to include("\"guard-bundler\", \"~> 2.2.1\"") + end + end + context "vendoring" do let(:project_name) { "vendored_gems" } let(:dependency_files) { bundler_project_dependency_files(project_name) } diff --git a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile new file mode 100644 index 00000000000..686cbd2c37d --- /dev/null +++ b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "guard-bundler", "~> 2.2.1" diff --git a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock new file mode 100644 index 00000000000..694632ca429 --- /dev/null +++ b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock @@ -0,0 +1,46 @@ +GEM + remote: https://rubygems.org/ + specs: + coderay (1.1.3) + ffi (1.14.2) + formatador (0.2.5) + guard (2.16.2) + formatador (>= 0.2.4) + listen (>= 2.7, < 4.0) + lumberjack (>= 1.0.12, < 2.0) + nenv (~> 0.1) + notiffany (~> 0.0) + pry (>= 0.9.12) + shellany (~> 0.0) + thor (>= 0.18.1) + guard-bundler (2.2.1) + bundler (>= 1.3.0, < 3) + guard (~> 2.2) + guard-compat (~> 1.1) + guard-compat (1.2.1) + listen (3.4.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + lumberjack (1.2.8) + method_source (1.0.0) + nenv (0.3.0) + notiffany (0.1.3) + nenv (~> 0.1) + shellany (~> 0.0) + pry (0.14.0) + coderay (~> 1.1) + method_source (~> 1.0) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + shellany (0.0.1) + thor (1.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + guard-bundler (= 2.2.1) + +BUNDLED WITH + 1.7.3 diff --git a/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile b/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile new file mode 100644 index 00000000000..686cbd2c37d --- /dev/null +++ b/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "guard-bundler", "~> 2.2.1" diff --git a/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile.lock b/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile.lock new file mode 100644 index 00000000000..c0464de4383 --- /dev/null +++ b/bundler/spec/fixtures/projects/bundler2/guard_bundler/Gemfile.lock @@ -0,0 +1,46 @@ +GEM + remote: https://rubygems.org/ + specs: + coderay (1.1.3) + ffi (1.14.2) + formatador (0.2.5) + guard (2.16.2) + formatador (>= 0.2.4) + listen (>= 2.7, < 4.0) + lumberjack (>= 1.0.12, < 2.0) + nenv (~> 0.1) + notiffany (~> 0.0) + pry (>= 0.9.12) + shellany (~> 0.0) + thor (>= 0.18.1) + guard-bundler (2.2.1) + bundler (>= 1.3.0, < 3) + guard (~> 2.2) + guard-compat (~> 1.1) + guard-compat (1.2.1) + listen (3.4.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + lumberjack (1.2.8) + method_source (1.0.0) + nenv (0.3.0) + notiffany (0.1.3) + nenv (~> 0.1) + shellany (~> 0.0) + pry (0.14.0) + coderay (~> 1.1) + method_source (~> 1.0) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + shellany (0.0.1) + thor (1.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + guard-bundler (= 2.2.1) + +BUNDLED WITH + 2.1.4