47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "rubocops/disable_comment"
 | |
| 
 | |
| RSpec.describe RuboCop::Cop::DisableComment, :config do
 | |
|   shared_examples "offense" do |source, correction, message|
 | |
|     it "registers an offense and corrects" do
 | |
|       expect_offense(<<~RUBY, source:, message:)
 | |
|         #{source}
 | |
|         ^{source} #{message}
 | |
|       RUBY
 | |
| 
 | |
|       expect_correction(<<~RUBY)
 | |
|         #{correction}
 | |
|       RUBY
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   it "registers an offense" do
 | |
|     expect_offense(<<~RUBY)
 | |
|       def something; end
 | |
|       # rubocop:disable Naming/AccessorMethodName
 | |
|       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Add a clarifying comment to the RuboCop disable comment
 | |
|       def get_decrypted_io; end
 | |
|     RUBY
 | |
|   end
 | |
| 
 | |
|   it "registers an offense if the comment is empty" do
 | |
|     expect_offense(<<~RUBY)
 | |
|       def something; end
 | |
|       #
 | |
|       # rubocop:disable Naming/AccessorMethodName
 | |
|       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Add a clarifying comment to the RuboCop disable comment
 | |
|       def get_decrypted_io; end
 | |
|     RUBY
 | |
|   end
 | |
| 
 | |
|   it "doesn't register an offense" do
 | |
|     expect_no_offenses(<<~RUBY)
 | |
|       def something; end
 | |
|       # This is a upstream name that we cannot change.
 | |
|       # rubocop:disable Naming/AccessorMethodName
 | |
|       def get_decrypted_io; end
 | |
|     RUBY
 | |
|   end
 | |
| end
 | 
