summaryrefslogtreecommitdiff
path: root/spec/bundler/lock
diff options
context:
space:
mode:
authorEllen Marie Dash <me@duckie.co>2023-02-28 19:29:58 -0500
committergit <svn-admin@ruby-lang.org>2023-03-02 00:50:58 +0000
commitd2d521b274f6fb5630b64365c6f1af0dbbc0719f (patch)
treecdb895c8693b1d0d31cc9b445cd9cce647c2c30f /spec/bundler/lock
parent35457ebb8f31fd34b89e8214a33e933f69c8021b (diff)
[rubygems/rubygems] Regenerate lockfile if spec list is invalid/empty.
https://github.com/rubygems/rubygems/commit/d2c56315e2
Diffstat (limited to 'spec/bundler/lock')
-rw-r--r--spec/bundler/lock/lockfile_spec.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/bundler/lock/lockfile_spec.rb b/spec/bundler/lock/lockfile_spec.rb
index 185e2a85fa..58037ee3a6 100644
--- a/spec/bundler/lock/lockfile_spec.rb
+++ b/spec/bundler/lock/lockfile_spec.rb
@@ -1221,6 +1221,57 @@ RSpec.describe "the lockfile format" do
and include("Either installing with `--full-index` or running `bundle update rack_middleware` should fix the problem.")
end
+ it "regenerates a lockfile with no specs" do
+ build_repo4 do
+ build_gem "indirect_dependency", "1.2.3" do |s|
+ s.metadata["funding_uri"] = "https://example.com/donate"
+ end
+
+ build_gem "direct_dependency", "4.5.6" do |s|
+ s.add_dependency "indirect_dependency", ">= 0"
+ end
+ end
+
+ lockfile <<-G
+ GEM
+ remote: #{file_uri_for(gem_repo4)}/
+ specs:
+
+ PLATFORMS
+ ruby
+
+ DEPENDENCIES
+ direct_dependency
+
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ G
+
+ install_gemfile <<-G
+ source "#{file_uri_for(gem_repo4)}"
+
+ gem "direct_dependency"
+ G
+
+ expect(lockfile).to eq <<~G
+ GEM
+ remote: #{file_uri_for(gem_repo4)}/
+ specs:
+ direct_dependency (4.5.6)
+ indirect_dependency
+ indirect_dependency (1.2.3)
+
+ PLATFORMS
+ #{lockfile_platforms}
+
+ DEPENDENCIES
+ direct_dependency
+
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ G
+ end
+
it "auto-heals when the lockfile is missing dependent specs" do
build_repo4 do
build_gem "minitest-bisect", "1.6.0" do |s|