summaryrefslogtreecommitdiff
path: root/spec/bundler/support/indexes.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/bundler/support/indexes.rb')
-rw-r--r--spec/bundler/support/indexes.rb35
1 files changed, 18 insertions, 17 deletions
diff --git a/spec/bundler/support/indexes.rb b/spec/bundler/support/indexes.rb
index 670f3b0230..086a311551 100644
--- a/spec/bundler/support/indexes.rb
+++ b/spec/bundler/support/indexes.rb
@@ -14,26 +14,21 @@ module Spec
alias_method :platforms, :platform
- def resolve(args = [])
+ def resolve(args = [], dependency_api_available: true)
@platforms ||= ["ruby"]
- default_source = instance_double("Bundler::Source::Rubygems", :specs => @index, :to_s => "locally install gems")
- source_requirements = { :default => default_source }
- args[0] ||= Bundler::SpecSet.new([]) # base
- args[0].each {|ls| ls.source = default_source }
- args[1] ||= Bundler::GemVersionPromoter.new # gem_version_promoter
- args[2] ||= [] # additional_base_requirements
- originally_locked = args[3] || Bundler::SpecSet.new([])
- unlock = args[4] || []
- packages = Hash.new do |h, k|
- h[k] = Bundler::Resolver::Package.new(k, @platforms, originally_locked, unlock)
- end
+ default_source = instance_double("Bundler::Source::Rubygems", specs: @index, to_s: "locally install gems", dependency_api_available?: dependency_api_available)
+ source_requirements = { default: default_source }
+ base = args[0] || Bundler::SpecSet.new([])
+ base.each {|ls| ls.source = default_source }
+ gem_version_promoter = args[1] || Bundler::GemVersionPromoter.new
+ originally_locked = args[2] || Bundler::SpecSet.new([])
+ unlock = args[3] || []
@deps.each do |d|
name = d.name
- platforms = d.gem_platforms(@platforms)
source_requirements[name] = d.source = default_source
- packages[name] = Bundler::Resolver::Package.new(name, platforms, originally_locked, unlock, :dependency => d)
end
- Bundler::Resolver.new(source_requirements, *args[0..2]).start(@deps, packages)
+ packages = Bundler::Resolver::Base.new(source_requirements, @deps, base, @platforms, locked_specs: originally_locked, unlock: unlock)
+ Bundler::Resolver.new(packages, gem_version_promoter).start
end
def should_not_resolve
@@ -46,6 +41,12 @@ module Spec
expect(got).to eq(specs.sort)
end
+ def should_resolve_without_dependency_api(specs)
+ got = resolve(dependency_api_available: false)
+ got = got.map(&:full_name).sort
+ expect(got).to eq(specs.sort)
+ end
+
def should_resolve_and_include(specs, args = [])
got = resolve(args)
got = got.map(&:full_name).sort
@@ -71,7 +72,7 @@ module Spec
s.level = opts.first
s.strict = opts.include?(:strict)
end
- should_resolve_and_include specs, [@base, search, [], @locked, unlock]
+ should_resolve_and_include specs, [@base, search, @locked, unlock]
end
def an_awesome_index
@@ -303,7 +304,7 @@ module Spec
end
end
- def a_unresovable_child_index
+ def a_unresolvable_child_index
build_index do
gem "json", %w[1.8.0]