Skip to content

Commit

Permalink
Fix Ruby 2.7 warning in minitest assert_text
Browse files Browse the repository at this point in the history
In our application at GitHub we were seeing a warning coming from
`assert_text` on the latest version and building the source from master.

Warning we were seeing:

```
/vendor/gems/2.7.1/ruby/2.7.0/gems/capybara-3.32.2/lib/capybara/minitest.rb:56: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/vendor/gems/2.7.1/ruby/2.7.0/gems/capybara-3.32.2/lib/capybara/minitest.rb:56:in `assert_text'
```

The warning is only visible when `assert_text` is delegated from
minitest which is why I've updated the minitest_spec.rb file to include
an argument. I was unable to see or reproduce this warning in the assert
text test.

I don't really get why `ruby2_keywords` wasn't adequate for this change
but from my testing my changes work in Ruby 2.6 and 2.7 and fix the
warning in 2.7.
  • Loading branch information
eileencodes committed Jun 15, 2020
1 parent 8440bd2 commit 1b0dfa4
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 4 deletions.
5 changes: 2 additions & 3 deletions lib/capybara/minitest.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,14 @@ module Assertions

%w[text no_text title no_title current_path no_current_path].each do |assertion_name|
class_eval <<-ASSERTION, __FILE__, __LINE__ + 1
def assert_#{assertion_name} *args
def assert_#{assertion_name}(*args, **kwargs)
self.assertions +=1
subject, args = determine_subject(args)
subject.assert_#{assertion_name}(*args)
subject.assert_#{assertion_name}(*args, **kwargs)
rescue Capybara::ExpectationNotMet => e
raise ::Minitest::Assertion, e.message
end
ASSERTION
ruby2_keywords "assert_#{assertion_name}" if respond_to?(:ruby2_keywords)
end

alias_method :refute_title, :assert_no_title
Expand Down
2 changes: 1 addition & 1 deletion spec/minitest_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def teardown
end

def test_assert_text
assert_text('Form')
assert_text('Form', normalize_ws: false)
assert_no_text('Not on the page')
refute_text('Also Not on the page')
end
Expand Down

0 comments on commit 1b0dfa4

Please sign in to comment.