summaryrefslogtreecommitdiff
path: root/spec/commands/newgem_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/commands/newgem_spec.rb')
-rw-r--r--spec/commands/newgem_spec.rb36
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" }