diff options
Diffstat (limited to 'spec/commands/newgem_spec.rb')
-rw-r--r-- | spec/commands/newgem_spec.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb index 1a3e8236b6..cfc8284585 100644 --- a/spec/commands/newgem_spec.rb +++ b/spec/commands/newgem_spec.rb @@ -310,6 +310,10 @@ RSpec.describe "bundle gem" do 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 + expect(bundled_app("test_gem/lib/test_gem.rb").read).to include("class Error < StandardError") + end + it "runs rake without problems" do system_gems ["rake-10.0.2"] @@ -550,6 +554,38 @@ RSpec.describe "bundle gem" do end end + context "--error-class flag set" do + context "with valid error class name" do + it "generates a gem skeleton with error subclassing given base class" do + execute_bundle_gem("test_gem", "--error-class RuntimeError") + expect(bundled_app("test_gem/lib/test_gem.rb").read).to include("< RuntimeError") + end + end + + context "with non-error class name" do + it "fails to generate a gem skeleton" do + expect do + execute_bundle_gem("test_gem", "--error-class Enumerable") + end.to raise_error(RuntimeError, /Invalid error class/) + end + end + + context "with invalid class name" do + it "fails to generate a gem skeleton" do + expect do + execute_bundle_gem("test_gem", "--error-class qpwoeiryt") + end.to raise_error(RuntimeError, /Invalid class name/) + end + end + end + + context "--no-error-class flag set" do + it "generates a gem skeleton without error subclass" do + execute_bundle_gem("test_gem", "--no-error-class") + expect(bundled_app("test_gem/lib/test_gem.rb").read).to_not include("class Error") + end + end + context "gem naming with dashed" do let(:gem_name) { "test-gem" } |