This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the dumb-mistakes-and-gotchas category.
Last Updated: 2024-11-21
This code in one of my tests failed
assert_match(flash[:error], /invalid/)
The error it threw was:
TypeError: no implicit conversion of Regexp into String
test/integration/user_sessions_test.rb:35:in `block in <class:UserSessionController>'
I tried a bunch of type conversions on my regex /invalid/
, before eventually
realizing that the API was simply strict about which argument number the regex
was given in (whereas other test frameworks are flexible about this)
The fix was to switch the argument order:
assert_match(/invalid/, flash[:error])
If a function with seeminly symmetric arguments is throwing type errors, try switching the argument order.