FactoryBot/AssociationStyle behavior with nested traits
jaydorsey opened this issue · 2 comments
I ran the corrector w/ this cop on our codebase, using the explicit
style. It made one correction which broke factorybot.
I wrote a test that reproduced the behavior below but I wasn't quite sure what direction the PR should go in (fixing the auto corrector, or the rule)
The problem is a nested factory that looks like factory :active_article, traits: [:approved, :active]
and:
- It gets identified as an error (should it be?)
- It gets corrected to
association :factory, :active_article, traits: [:active, :approved]
which breaks rubocop
The interesting thing is if I just add a do;end
block to my :active_article
factory, it ignores the error. I have a draft PR I'm going to push up shortly.
context 'when implicit association has factory and traits' do
it 'registers and corrects an offense' do
expect_no_offenses(<<~RUBY)
factory :article do
traits :approved do
approved { true }
end
traits :active do
active { true }
end
factory :active_article, traits: [:approved, :active]
end
RUBY
end
end
Some how, ended up on this repo instead of the rubocop-factory_bot one. Feel free to delete
This is fine, we’ve just recently extracted factory_bot-related cops, and the two gems are tightly bound until the next major release.