From de6435d3049e0b6f60ef7b5048408b8aed673571 Mon Sep 17 00:00:00 2001 From: Josh Prince Date: Wed, 7 Jun 2023 22:19:17 -0400 Subject: [PATCH] Doc and changelog updates --- docs/modules/ROOT/pages/cops_rspec.adoc | 20 +++++++++++++++++++ lib/rubocop/cop/rspec/iterated_expectation.rb | 20 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/docs/modules/ROOT/pages/cops_rspec.adoc b/docs/modules/ROOT/pages/cops_rspec.adoc index aec2d3606..db3c478d7 100644 --- a/docs/modules/ROOT/pages/cops_rspec.adoc +++ b/docs/modules/ROOT/pages/cops_rspec.adoc @@ -2710,6 +2710,26 @@ end it 'validates users' do expect([user1, user2, user3]).to all(be_valid) end + +# bad +it 'sets inferred fields for users' do + [user1, user2, user3].each do |user| + expect(user).to have_attributes( + post_count: PostService.new(user).post_count, + karma: KarmaService.new(user).value + ) + end +end + +# good +it 'sets inferred fields for users' do + expect([user1, user2, user3]).to all(satisfy do |user| + have_attributes( + post_count: PostService.new(user).post_count, + karma: KarmaService.new(user).value + ) + end) +end ---- === References diff --git a/lib/rubocop/cop/rspec/iterated_expectation.rb b/lib/rubocop/cop/rspec/iterated_expectation.rb index 7d65851a4..069201587 100644 --- a/lib/rubocop/cop/rspec/iterated_expectation.rb +++ b/lib/rubocop/cop/rspec/iterated_expectation.rb @@ -16,6 +16,26 @@ module RSpec # expect([user1, user2, user3]).to all(be_valid) # end # + # # bad + # it 'sets inferred fields for users' do + # [user1, user2, user3].each do |user| + # expect(user).to have_attributes( + # post_count: PostService.new(user).post_count, + # karma: KarmaService.new(user).value + # ) + # end + # end + # + # # good + # it 'sets inferred fields for users' do + # expect([user1, user2, user3]).to all(satisfy do |user| + # have_attributes( + # post_count: PostService.new(user).post_count, + # karma: KarmaService.new(user).value + # ) + # end) + # end + # class IteratedExpectation < Base MSG = 'Prefer using the `all` matcher instead ' \ 'of iterating over an array.'