diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-10-02 14:40:42 +0200 |
---|---|---|
committer | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-10-03 16:08:40 +0200 |
commit | 65d55ffabc8b84af24d11990ee16bd774a42e7cc (patch) | |
tree | 5484512efbde8e549d77eb8470cf07abaec5082d | |
parent | 6735cc3da3f70aa28ba846f5d38fc900b8aea4ef (diff) | |
download | bundler-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.rb | 26 |
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 |