summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitali Tatarintev <vtatarintev@gitlab.com>2019-08-23 11:05:50 +0200
committerVitali Tatarintev <vtatarintev@gitlab.com>2019-08-28 08:43:47 +0200
commitb61d26f496a2041d7124fd3280031deda3cf5a43 (patch)
treed8a8ffdc6e40b68aa814d41536bb304250ee8037
parent23da356dd1a048ca86c95960fb0b76df914f9087 (diff)
downloadgitlab-ce-b61d26f496a2041d7124fd3280031deda3cf5a43.tar.gz
Add support of not_to/to_not to BeSuccessMatcher
BeSuccessMatcher now supports following examples: ``` expect(response).to be_success expect(response).to_not be_success expect(response).not_to be_success is_expected.to be_success is_expected.to_not be_success is_expected.not_to be_success ```
-rw-r--r--rubocop/cop/rspec/be_success_matcher.rb4
-rw-r--r--spec/rubocop/cop/rspec/be_success_matcher_spec.rb20
2 files changed, 20 insertions, 4 deletions
diff --git a/rubocop/cop/rspec/be_success_matcher.rb b/rubocop/cop/rspec/be_success_matcher.rb
index 18bcfa6d582..ca937a8ee9f 100644
--- a/rubocop/cop/rspec/be_success_matcher.rb
+++ b/rubocop/cop/rspec/be_success_matcher.rb
@@ -29,11 +29,11 @@ module RuboCop
MESSAGE = 'Do not use deprecated `success?` method, use `successful?` instead.'.freeze
def_node_search :expect_to_be_success?, <<~PATTERN
- (send (send nil? :expect (send nil? ...)) :to (send nil? :be_success))
+ (send (send nil? :expect (send nil? ...)) {:to :not_to :to_not} (send nil? :be_success))
PATTERN
def_node_search :is_expected_to_be_success?, <<~PATTERN
- (send (send nil? :is_expected) :to (send nil? :be_success))
+ (send (send nil? :is_expected) {:to :not_to :to_not} (send nil? :be_success))
PATTERN
def be_success_usage?(node)
diff --git a/spec/rubocop/cop/rspec/be_success_matcher_spec.rb b/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
index 9965b8ddf86..95f08a61557 100644
--- a/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
+++ b/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
@@ -16,10 +16,26 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do
good: %(expect(response).to be_successful).freeze
},
{
+ bad: %(expect(response).to_not be_success).freeze,
+ good: %(expect(response).to_not be_successful).freeze
+ },
+ {
+ bad: %(expect(response).not_to be_success).freeze,
+ good: %(expect(response).not_to be_successful).freeze
+ },
+ {
bad: %(is_expected.to be_success).freeze,
good: %(is_expected.to be_successful).freeze
+ },
+ {
+ bad: %(is_expected.to_not be_success).freeze,
+ good: %(is_expected.to_not be_successful).freeze
+ },
+ {
+ bad: %(is_expected.not_to be_success).freeze,
+ good: %(is_expected.not_to be_successful).freeze
}
- ]
+ ].freeze
let(:source_file) { 'spec/foo_spec.rb' }
@@ -55,7 +71,7 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do
end
context "using #{code_example[:good]} call" do
- it "does not register an offense" do
+ it 'does not register an offense' do
inspect_source(code_example[:good])
expect(cop.offenses.size).to eq(0)