summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>2026-02-04 02:50:52 +0000
committergit <svn-admin@ruby-lang.org>2026-02-04 06:02:24 +0000
commit03a17facfdd8c2bbcca5862fa98f51e9979b77ca (patch)
treede256f760086c77ac89bceec2ada3d7c769977ed /spec
parent0c2ded4a07e0ba0e4d2d9ab92d549135300d495b (diff)
[ruby/rubygems] Add test case for git sources with transitive dependencies
https://github.com/ruby/rubygems/commit/00c8bb7bc5 Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
Diffstat (limited to 'spec')
-rw-r--r--spec/bundler/install/gemfile/sources_spec.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/bundler/install/gemfile/sources_spec.rb b/spec/bundler/install/gemfile/sources_spec.rb
index 4957ef70be..c72a2b982a 100644
--- a/spec/bundler/install/gemfile/sources_spec.rb
+++ b/spec/bundler/install/gemfile/sources_spec.rb
@@ -1273,4 +1273,41 @@ RSpec.describe "bundle install with gems on multiple sources" do
expect(the_bundle).to include_gems("missing_dep 1.0.0", source: "remote2")
end
end
+
+ context "when a git gem has a transitive dependency that does not exist in the git source" do
+ before do
+ build_repo2 do
+ build_gem "missing_dep", "1.0.0"
+ build_gem "foo", "1.0.0"
+ end
+
+ build_git "parent_gem", "1.0.0", path: lib_path("parent_gem") do |s|
+ s.add_dependency "missing_dep"
+ end
+
+ gemfile <<-G
+ source "https://gem.repo2"
+
+ gem "foo"
+
+ gem "parent_gem", git: "#{lib_path("parent_gem")}"
+ G
+
+ bundle :install, artifice: "compact_index"
+ end
+
+ it "falls back to the default rubygems source for that dependency when updating" do
+ build_repo2 do
+ build_gem "foo", "2.0.0"
+ end
+
+ system_gems []
+
+ bundle "update foo", artifice: "compact_index"
+
+ expect(the_bundle).to include_gems("parent_gem 1.0.0", "missing_dep 1.0.0", "foo 2.0.0")
+ expect(the_bundle).to include_gems("parent_gem 1.0.0", source: "git@#{lib_path("parent_gem")}")
+ expect(the_bundle).to include_gems("missing_dep 1.0.0", source: "remote2")
+ end
+ end
end