summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Arko <mail@arko.net>2015-07-27 19:11:43 -0700
committerAndré Arko <mail@arko.net>2015-07-27 19:11:43 -0700
commit26c4665788cd2601211cc54935411b8227c2f132 (patch)
tree651f717865c443ee270a1de36804c7597a0142db
parentbccaa40bb2c433e555233761114ae509c75d128e (diff)
parent2e97cd4042828a2188306fa4aabc2392e125ba27 (diff)
downloadbundler-26c4665788cd2601211cc54935411b8227c2f132.tar.gz
Merge pull request #3885 from bundler/aa-3811-specific-test-deps
Depend on major version of test gems
-rw-r--r--lib/bundler/cli/gem.rb7
-rw-r--r--lib/bundler/templates/newgem/newgem.gemspec.tt2
-rw-r--r--spec/commands/newgem_spec.rb12
3 files changed, 20 insertions, 1 deletions
diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb
index cef64f27a8..bae6ab06b8 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -2,6 +2,11 @@ require "pathname"
module Bundler
class CLI::Gem
+ TEST_FRAMEWORK_VERSIONS = {
+ "rspec" => "3.0",
+ "minitest" => "5.0"
+ }
+
attr_reader :options, :gem_name, :thor, :name, :target
def initialize(options, gem_name, thor)
@@ -63,6 +68,8 @@ module Bundler
if test_framework = ask_and_set_test_framework
config[:test] = test_framework
+ config[:test_framework_version] = TEST_FRAMEWORK_VERSIONS[test_framework]
+
templates.merge!(".travis.yml.tt" => ".travis.yml")
case test_framework
diff --git a/lib/bundler/templates/newgem/newgem.gemspec.tt b/lib/bundler/templates/newgem/newgem.gemspec.tt
index 89f669120b..c35ee72dff 100644
--- a/lib/bundler/templates/newgem/newgem.gemspec.tt
+++ b/lib/bundler/templates/newgem/newgem.gemspec.tt
@@ -38,6 +38,6 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "rake-compiler"
<%- end -%>
<%- if config[:test] -%>
- spec.add_development_dependency "<%=config[:test]%>"
+ spec.add_development_dependency "<%=config[:test]%>", "~> <%=config[:test_framework_version]%>"
<%- end -%>
end
diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb
index 8acde88b5e..b644d1ba68 100644
--- a/spec/commands/newgem_spec.rb
+++ b/spec/commands/newgem_spec.rb
@@ -244,6 +244,12 @@ describe "bundle gem" do
expect(bundled_app("test_gem/spec/spec_helper.rb")).to exist
end
+ it "depends on a specific version of rspec", :rubygems => ">= 1.8.1" do
+ remove_push_guard(gem_name)
+ rspec_dep = generated_gem.gemspec.development_dependencies.find {|d| d.name == "rspec" }
+ expect(rspec_dep).to be_specific
+ end
+
it "requires 'test-gem'" do
expect(bundled_app("test_gem/spec/spec_helper.rb").read).to include("require 'test_gem'")
end
@@ -289,6 +295,12 @@ describe "bundle gem" do
bundle "gem #{gem_name} --test=minitest"
end
+ it "depends on a specific version of minitest", :rubygems => ">= 1.8.1" do
+ remove_push_guard(gem_name)
+ rspec_dep = generated_gem.gemspec.development_dependencies.find {|d| d.name == "minitest" }
+ expect(rspec_dep).to be_specific
+ end
+
it "builds spec skeleton" do
expect(bundled_app("test_gem/test/test_gem_test.rb")).to exist
expect(bundled_app("test_gem/test/test_helper.rb")).to exist