summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSmit Shah <who828@gmail.com>2013-11-22 01:02:43 +0530
committerSmit Shah <who828@gmail.com>2013-11-22 01:02:43 +0530
commitcc4d4abb6fc1f640bc494e39e0a578c223eee1cf (patch)
treed6f13b23261e1fcf34e96dd20dec6c65d837fad4 /spec
parent2be104f634c103682cef5a5c3bd4e41b14a9fc67 (diff)
downloadbundler-cc4d4abb6fc1f640bc494e39e0a578c223eee1cf.tar.gz
Added a fix for multiple level conflict resolution
Diffstat (limited to 'spec')
-rw-r--r--spec/resolver/basic_spec.rb6
-rw-r--r--spec/support/indexes.rb49
2 files changed, 54 insertions, 1 deletions
diff --git a/spec/resolver/basic_spec.rb b/spec/resolver/basic_spec.rb
index 22dc2f0fbe..2481e53e13 100644
--- a/spec/resolver/basic_spec.rb
+++ b/spec/resolver/basic_spec.rb
@@ -23,6 +23,12 @@ describe "Resolving" do
dep "my_app"
should_resolve_as %w(activemodel-3.2.11 builder-3.0.4 grape-0.2.6 my_app-1.0.0)
end
+
+ it "resolves a complex conflicting index" do
+ @index = a_complex_conflict_index
+ dep "my_app"
+ should_resolve_as %w(a-1.4.0 b-0.3.5 c-3.2 d-0.9.8 my_app-1.1.0)
+ end
it "should throw error in case of circular dependencies" do
@index = a_circular_index
diff --git a/spec/support/indexes.rb b/spec/support/indexes.rb
index cbea694b80..3b5ab10bcc 100644
--- a/spec/support/indexes.rb
+++ b/spec/support/indexes.rb
@@ -115,7 +115,7 @@ module Spec
build_index do
gem "builder", %w(3.0.4 3.1.4)
gem("grape", '0.2.6') do
- dep "builder", ">= 4"
+ dep "builder", ">= 0"
end
versions '3.2.8 3.2.9 3.2.10 3.2.11' do |version|
@@ -131,6 +131,53 @@ module Spec
end
end
+ def a_complex_conflict_index
+ build_index do
+ gem("a", %w(1.0.2 1.1.4 1.2.0 1.4.0)) do
+ dep "d", ">= 0"
+ end
+
+ gem("d", %w(1.3.0 1.4.1)) do
+ dep "x", ">= 0"
+ end
+
+ gem "d", "0.9.8"
+
+ gem("b", '0.3.4') do
+ dep "a", ">= 1.5.0"
+ end
+
+ gem("b", '0.3.5') do
+ dep "a", ">= 1.2"
+ end
+
+ gem("b", '0.3.3') do
+ dep "a", "> 1.0"
+ end
+
+ versions '3.2 3.3' do |version|
+ gem("c", version) do
+ dep "a", "~> 1.0"
+ end
+ end
+
+ gem("my_app", '1.3.0') do
+ dep "c", ">= 4.0"
+ dep "b", ">= 0"
+ end
+
+ gem("my_app", '1.2.0') do
+ dep "c", "~> 3.3.0"
+ dep "b", "0.3.4"
+ end
+
+ gem("my_app", '1.1.0') do
+ dep "c", "~> 3.2.0"
+ dep "b", "0.3.5"
+ end
+ end
+ end
+
def a_circular_index
build_index do
gem "rack", "1.0.1"