Skip to content

Weird error when refinement is used in rspec #2977

@jirutka

Description

@jirutka

Sorry for such bad title, but I don’t know how to properly described what’s going on here. Let me show you:

module Refin
  refine String do
    def foo
    end
  end
end

describe "foo" do
  using Refin

  shared_examples :okay do
    it { expect( 1 ).to eq 1 }
  end

  shared_examples :failing do |arg|
    it { expect( arg ).to_not be_nil }
  end

  context "include example without arguments" do
    include_examples :okay  # <-- THIS IS OK
  end

  context "include example with an argument" do
    include_examples :failing, :foo  # <-- THIS FAILS
  end
end
$ rspec some_spec.rb
ArgumentError: wrong number of arguments (0 for 1)
   include_examples at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:24
    block in (root) at /Users/jimmy/Temp/jruby/some_spec.rb:24
        module_exec at org/jruby/RubyModule.java:2669
           subclass at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:363
   block in context at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:253
    block in (root) at /Users/jimmy/Temp/jruby/some_spec.rb:23
        module_exec at org/jruby/RubyModule.java:2669
           subclass at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:363
  block in describe at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:253
  block in describe at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/dsl.rb:43
  block in describe at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/dsl.rb:82
              <top> at /Users/jimmy/Temp/jruby/some_spec.rb:8
               load at org/jruby/RubyKernel.java:984
    block in (root) at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1
               each at org/jruby/RubyArray.java:1571
    load_spec_files at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226
    load_spec_files at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224
              setup at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:97
                run at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85
                run at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70
              <top> at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/lib/ruby/gems/shared/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38
               load at org/jruby/RubyKernel.java:984
              <top> at /Users/jimmy/.rbenv/versions/jruby-9.0.0.0.pre2/bin/rspec:23

When you remove the line using Refin, then it runs without problem.

I ran into this problem with corefines, you can see similar log here on Travis with jruby-head.


rspec 3.2.3

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions