diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-02-09 17:11:52 +0100 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-02-11 18:20:20 +0900 |
commit | 7b676b3ce383c0b43a81694f80fbb424ee753213 (patch) | |
tree | 290fdcce68bee611b5d102ca7da3e5dd6e94ec2e /spec/bundler | |
parent | 22bf6e43937a198b94230b7a496983bf816551c6 (diff) | |
download | ruby-7b676b3ce383c0b43a81694f80fbb424ee753213.tar.gz |
[rubygems/rubygems] Fix corrupted lockfile when using `gemspec` and multiple sources
https://github.com/rubygems/rubygems/commit/9712262d90
Diffstat (limited to 'spec/bundler')
-rw-r--r-- | spec/bundler/commands/check_spec.rb | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/bundler/commands/check_spec.rb b/spec/bundler/commands/check_spec.rb index e0c9a04c25..b4996977c1 100644 --- a/spec/bundler/commands/check_spec.rb +++ b/spec/bundler/commands/check_spec.rb @@ -431,6 +431,69 @@ RSpec.describe "bundle check" do end end + context "with gemspec directive and scoped sources" do + before do + build_repo4 do + build_gem "awesome_print" + end + + build_repo2 do + build_gem "dex-dispatch-engine" + end + + build_lib("bundle-check-issue", :path => tmp.join("bundle-check-issue")) do |s| + s.write "Gemfile", <<-G + source "https://localgemserver.test" + + gemspec + + source "https://localgemserver.test/extra" do + gem "dex-dispatch-engine" + end + G + + s.add_dependency "awesome_print" + end + + bundle "install", :artifice => "compact_index_extra", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }, :dir => tmp.join("bundle-check-issue") + end + + it "does not corrupt lockfile when changing version" do + version_file = tmp.join("bundle-check-issue/bundle-check-issue.gemspec") + File.write(version_file, File.read(version_file).gsub(/s\.version = .+/, "s.version = '9999'")) + + bundle "check --verbose", :dir => tmp.join("bundle-check-issue") + + expect(File.read(tmp.join("bundle-check-issue/Gemfile.lock"))).to eq <<~L + PATH + remote: . + specs: + bundle-check-issue (9999) + awesome_print + + GEM + remote: https://localgemserver.test/ + specs: + awesome_print (1.0) + + GEM + remote: https://localgemserver.test/extra/ + specs: + dex-dispatch-engine (1.0) + + PLATFORMS + #{lockfile_platforms} + + DEPENDENCIES + bundle-check-issue! + dex-dispatch-engine! + + BUNDLED WITH + #{Bundler::VERSION} + L + end + end + describe "BUNDLED WITH" do def lock_with(bundler_version = nil) lock = <<~L |