summaryrefslogtreecommitdiff
path: root/spec/rubocop/cop/lint/last_keyword_argument_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubocop/cop/lint/last_keyword_argument_spec.rb')
-rw-r--r--spec/rubocop/cop/lint/last_keyword_argument_spec.rb29
1 files changed, 27 insertions, 2 deletions
diff --git a/spec/rubocop/cop/lint/last_keyword_argument_spec.rb b/spec/rubocop/cop/lint/last_keyword_argument_spec.rb
index 5822bf74e8d..826c681a880 100644
--- a/spec/rubocop/cop/lint/last_keyword_argument_spec.rb
+++ b/spec/rubocop/cop/lint/last_keyword_argument_spec.rb
@@ -4,7 +4,7 @@ require 'fast_spec_helper'
require 'rubocop'
require_relative '../../../../rubocop/cop/lint/last_keyword_argument'
-RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument, type: :rubocop do
+RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument do
include CopHelper
subject(:cop) { described_class.new }
@@ -38,6 +38,8 @@ RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument, type: :rubocop do
- |
DEPRECATION WARNING: /Users/tkuah/code/ee-gdk/gitlab/create_service.rb:1: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/Users/tkuah/code/ee-gdk/gitlab/user.rb:17: warning: The called method `call' is defined here
+ - |
+ DEPRECATION WARNING: /Users/tkuah/code/ee-gdk/gitlab/other_warning_type.rb:1: warning: Some other warning type
YAML
end
@@ -62,7 +64,7 @@ RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument, type: :rubocop do
allow(File).to receive(:read).and_return(create_spec_yaml, projects_spec_yaml)
end
- it 'registers an offense' do
+ it 'registers an offense for last keyword warning' do
expect_offense(<<~SOURCE, 'create_service.rb')
users.call(params)
^^^^^^ Using the last argument as keyword parameters is deprecated
@@ -73,6 +75,12 @@ RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument, type: :rubocop do
SOURCE
end
+ it 'does not register an offense for other warning types' do
+ expect_no_offenses(<<~SOURCE, 'other_warning_type.rb')
+ users.call(params)
+ SOURCE
+ end
+
it 'registers an offense for the new method call' do
expect_offense(<<~SOURCE, 'projects_spec.rb')
Project.new(params)
@@ -95,6 +103,23 @@ RSpec.describe RuboCop::Cop::Lint::LastKeywordArgument, type: :rubocop do
SOURCE
end
+ it 'registers an offense on the last non-block argument' do
+ expect_offense(<<~SOURCE, 'create_service.rb')
+ users.call(id, params, &block)
+ ^^^^^^ Using the last argument as keyword parameters is deprecated
+ SOURCE
+
+ expect_correction(<<~SOURCE)
+ users.call(id, **params, &block)
+ SOURCE
+ end
+
+ it 'does not register an offense if the only argument is a block argument' do
+ expect_no_offenses(<<~SOURCE, 'create_service.rb')
+ users.call(&block)
+ SOURCE
+ end
+
it 'registers an offense and corrects by converting splat to double splat' do
expect_offense(<<~SOURCE, 'create_service.rb')
users.call(id, *params)