diff options
| author | copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> | 2026-02-04 02:50:52 +0000 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2026-02-04 06:02:24 +0000 |
| commit | 03a17facfdd8c2bbcca5862fa98f51e9979b77ca (patch) | |
| tree | de256f760086c77ac89bceec2ada3d7c769977ed | |
| parent | 0c2ded4a07e0ba0e4d2d9ab92d549135300d495b (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>
| -rw-r--r-- | spec/bundler/install/gemfile/sources_spec.rb | 37 |
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 |
