summaryrefslogtreecommitdiff
path: root/spec/ruby/core/kernel/shared
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/kernel/shared')
-rw-r--r--spec/ruby/core/kernel/shared/kind_of.rb55
-rw-r--r--spec/ruby/core/kernel/shared/sprintf.rb23
2 files changed, 23 insertions, 55 deletions
diff --git a/spec/ruby/core/kernel/shared/kind_of.rb b/spec/ruby/core/kernel/shared/kind_of.rb
deleted file mode 100644
index a5e0eab08f..0000000000
--- a/spec/ruby/core/kernel/shared/kind_of.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-require_relative '../fixtures/classes'
-
-describe :kernel_kind_of, shared: true do
- before :each do
- @o = KernelSpecs::KindaClass.new
- end
-
- it "returns true if given class is the object's class" do
- @o.send(@method, KernelSpecs::KindaClass).should == true
- end
-
- it "returns true if given class is an ancestor of the object's class" do
- @o.send(@method, KernelSpecs::AncestorClass).should == true
- @o.send(@method, String).should == true
- @o.send(@method, Object).should == true
- end
-
- it "returns false if the given class is not object's class nor an ancestor" do
- @o.send(@method, Array).should == false
- end
-
- it "returns true if given a Module that is included in object's class" do
- @o.send(@method, KernelSpecs::MyModule).should == true
- end
-
- it "returns true if given a Module that is included one of object's ancestors only" do
- @o.send(@method, KernelSpecs::AncestorModule).should == true
- end
-
- it "returns true if given a Module that object has been extended with" do
- @o.send(@method, KernelSpecs::MyExtensionModule).should == true
- end
-
- it "returns true if given a Module that object has been prepended with" do
- @o.send(@method, KernelSpecs::MyPrependedModule).should == true
- end
-
- it "returns false if given a Module not included nor prepended in object's class nor ancestors" do
- @o.send(@method, KernelSpecs::SomeOtherModule).should == false
- end
-
- it "raises a TypeError if given an object that is not a Class nor a Module" do
- -> { @o.send(@method, 1) }.should.raise(TypeError)
- -> { @o.send(@method, 'KindaClass') }.should.raise(TypeError)
- -> { @o.send(@method, :KindaClass) }.should.raise(TypeError)
- -> { @o.send(@method, Object.new) }.should.raise(TypeError)
- end
-
- it "does not take into account `class` method overriding" do
- def @o.class; Integer; end
-
- @o.send(@method, Integer).should == false
- @o.send(@method, KernelSpecs::KindaClass).should == true
- end
-end
diff --git a/spec/ruby/core/kernel/shared/sprintf.rb b/spec/ruby/core/kernel/shared/sprintf.rb
index b40bd95f59..e57334c5ab 100644
--- a/spec/ruby/core/kernel/shared/sprintf.rb
+++ b/spec/ruby/core/kernel/shared/sprintf.rb
@@ -1031,4 +1031,27 @@ describe :kernel_sprintf, shared: true do
it "does not raise error when passed more arguments than needed" do
sprintf("%s %d %c", "string", 2, "c", []).should == "string 2 c"
end
+
+ describe "when $VERBOSE is true" do
+ it "warns if too many arguments are passed" do
+ -> {
+ format("test", 1)
+ }.should complain(/too many arguments for format string/, verbose: true)
+ end
+
+ it "does not warns if too many keyword arguments are passed" do
+ -> {
+ format("test %{test}", test: 1, unused: 2)
+ }.should_not complain(verbose: true)
+ end
+
+ ruby_bug "#20593", ""..."3.4" do
+ it "doesn't warns if keyword arguments are passed and none are used" do
+ -> {
+ format("test", test: 1)
+ format("test", {})
+ }.should_not complain(verbose: true)
+ end
+ end
+ end
end