Address NameError on triple nested sub_test_case under ActionView::TestCase on Rails 6.1 #24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since Rails 6.1 (Zeitwerk), all
ActionView::TestCase
class is expected to abide by normal Ruby module naming, but this is not always the case withsub_test_case
sincesub_test_case
generates an anonymous class with the given string as itsname
.Attached is a simple reproduction of the situation, and a monkey-patch for
ActionView::TestCase
'ssub_test_case
to ignoreNameError
fromdefault_helper_module!
.It is less likely that this patch introduces any new unexpected bug because that's basically how things were working with older versions of Rails with test-unit.
Please note that this patch depends on test-unit#207. We need a patched version of test-unit to be bundled to this repo in order for this patch to run (and so I expect that that test I added here would raise errors on the CI for this PR).