diff options
Diffstat (limited to 'spec/commands/newgem_spec.rb')
-rw-r--r-- | spec/commands/newgem_spec.rb | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb index 09af5b0d..2ca9a8a7 100644 --- a/spec/commands/newgem_spec.rb +++ b/spec/commands/newgem_spec.rb @@ -30,7 +30,7 @@ describe "bundle gem" do end end - shared_examples_for "git config is absent" do |hoge| + shared_examples_for "git config is absent" do it "sets gemspec author to default message if git user.name is not set or empty" do expect(generated_gem.gemspec.authors.first).to eq("TODO: Write your name") end @@ -40,6 +40,36 @@ describe "bundle gem" do end end + it "generates a valid gemspec" do + system_gems ["rake-10.0.2"] + + in_app_root + bundle "gem newgem --bin" + + process_file(bundled_app('newgem', "newgem.gemspec")) do |line| + next line unless line =~ /TODO/ + # Simulate replacing TODOs with real values + case line + when /spec\.metadata\['allowed_push_host'\]/, /spec\.homepage/ + line.gsub(/\=.*$/, "= 'http://example.org'") + when /spec\.summary/ + line.gsub(/\=.*$/, "= %q{A short summary of my new gem.}") + when /spec\.description/ + line.gsub(/\=.*$/, "= %q{A longer description of my new gem.}") + else + line + end + end + + Dir.chdir(bundled_app('newgem')) do + bundle "exec rake build" + end + + expect(exitstatus).to be_zero if exitstatus + expect(out).not_to include("ERROR") + expect(err).not_to include("ERROR") + end + context "gem naming with relative paths" do before do reset! |