summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-10-02 14:40:42 +0200
committerDavid Rodríguez <deivid.rodriguez@riseup.net>2019-10-03 16:08:40 +0200
commit65d55ffabc8b84af24d11990ee16bd774a42e7cc (patch)
tree5484512efbde8e549d77eb8470cf07abaec5082d
parent6735cc3da3f70aa28ba846f5d38fc900b8aea4ef (diff)
downloadbundler-65d55ffabc8b84af24d11990ee16bd774a42e7cc.tar.gz
Don't do unnecessary work
Most inner context create a gem on their own setup, and don't need the outtermost gem creation. So move that inline to every spec that needs it.
-rw-r--r--spec/commands/newgem_spec.rb26
1 files changed, 22 insertions, 4 deletions
diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb
index 74a77bad68..38e8930762 100644
--- a/spec/commands/newgem_spec.rb
+++ b/spec/commands/newgem_spec.rb
@@ -255,11 +255,9 @@ RSpec.describe "bundle gem" do
context "gem naming with underscore" do
let(:gem_name) { "test_gem" }
- before do
+ it "generates a gem skeleton" do
bundle! "gem #{gem_name}"
- end
- it "generates a gem skeleton" do
expect(bundled_app("test_gem/test_gem.gemspec")).to exist
expect(bundled_app("test_gem/Gemfile")).to exist
expect(bundled_app("test_gem/Rakefile")).to exist
@@ -274,15 +272,25 @@ RSpec.describe "bundle gem" do
end
it "starts with version 0.1.0" do
+ bundle! "gem #{gem_name}"
+
expect(bundled_app("test_gem/lib/test_gem/version.rb").read).to match(/VERSION = "0.1.0"/)
end
it "does not nest constants" do
+ bundle! "gem #{gem_name}"
+
expect(bundled_app("test_gem/lib/test_gem/version.rb").read).to match(/module TestGem/)
expect(bundled_app("test_gem/lib/test_gem.rb").read).to match(/module TestGem/)
end
- it_should_behave_like "git config is present"
+ context "git config user.{name,email} is set" do
+ before do
+ bundle! "gem #{gem_name}"
+ end
+
+ it_should_behave_like "git config is present"
+ end
context "git config user.{name,email} is not set" do
before do
@@ -296,25 +304,35 @@ RSpec.describe "bundle gem" do
end
it "sets gemspec metadata['allowed_push_host']" do
+ bundle! "gem #{gem_name}"
+
expect(generated_gemspec.metadata["allowed_push_host"]).
to match(/mygemserver\.com/)
end
it "sets a minimum ruby version" do
+ bundle! "gem #{gem_name}"
+
bundler_gemspec = Bundler::GemHelper.new(gemspec_dir).gemspec
expect(bundler_gemspec.required_ruby_version).to eq(generated_gemspec.required_ruby_version)
end
it "requires the version file" do
+ bundle! "gem #{gem_name}"
+
expect(bundled_app("test_gem/lib/test_gem.rb").read).to match(%r{require "test_gem/version"})
end
it "creates a base error class" do
+ bundle! "gem #{gem_name}"
+
expect(bundled_app("test_gem/lib/test_gem.rb").read).to match(/class Error < StandardError; end$/)
end
it "runs rake without problems" do
+ bundle! "gem #{gem_name}"
+
system_gems ["rake-12.3.2"]
rakefile = strip_whitespace <<-RAKEFILE