42 lines
1.5 KiB
Ruby
42 lines
1.5 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'rubocop_spec_helper'
|
||
|
require_relative '../../../../rubocop/cop/gitlab/service_response'
|
||
|
|
||
|
RSpec.describe RuboCop::Cop::Gitlab::ServiceResponse do
|
||
|
subject(:cop) { described_class.new }
|
||
|
|
||
|
it 'does not flag the `http_status:` param on a homonym method' do
|
||
|
expect_no_offenses("MyClass.error(http_status: :ok)")
|
||
|
end
|
||
|
|
||
|
it 'does not flag calls without params' do
|
||
|
expect_no_offenses('ServiceResponse.error')
|
||
|
end
|
||
|
|
||
|
it 'does not flag the offense when `http_status` is not used' do
|
||
|
expect_no_offenses('ServiceResponse.error(message: "some error", reason: :bad_time)')
|
||
|
end
|
||
|
|
||
|
it 'flags the use of `http_status:` parameter in ServiceResponse in error' do
|
||
|
expect_offense(<<~CODE, msg: described_class::MSG)
|
||
|
ServiceResponse.error(message: "some error", http_status: :bad_request)
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^ %{msg}
|
||
|
CODE
|
||
|
end
|
||
|
|
||
|
it 'flags the use of `http_status:` parameter in ServiceResponse in success' do
|
||
|
expect_offense(<<~CODE, msg: described_class::MSG)
|
||
|
ServiceResponse.success(message: "some error", http_status: :bad_request)
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^ %{msg}
|
||
|
CODE
|
||
|
end
|
||
|
|
||
|
it 'flags the use of `http_status:` parameter in ServiceResponse in initializer' do
|
||
|
expect_offense(<<~CODE, msg: described_class::MSG)
|
||
|
ServiceResponse.new(message: "some error", http_status: :bad_request)
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^ %{msg}
|
||
|
CODE
|
||
|
end
|
||
|
end
|