97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "rubocops/no_fileutils_rmrf"
 | |
| 
 | |
| RSpec.describe RuboCop::Cop::Homebrew::NoFileutilsRmrf do
 | |
|   subject(:cop) { described_class.new }
 | |
| 
 | |
|   describe "rm_rf" do
 | |
|     it "registers an offense" do
 | |
|       expect_offense(<<~RUBY)
 | |
|         rm_rf("path/to/directory")
 | |
|         ^^^^^^^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|         FileUtils.rm_rf("path/to/directory")
 | |
|         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|       RUBY
 | |
|     end
 | |
| 
 | |
|     it "autocorrects" do
 | |
|       corrected = autocorrect_source(<<~RUBY)
 | |
|         rm_rf("path/to/directory")
 | |
|         FileUtils.rm_rf("path/to/other/directory")
 | |
|       RUBY
 | |
| 
 | |
|       expect(corrected).to eq(<<~RUBY)
 | |
|         rm_r("path/to/directory")
 | |
|         FileUtils.rm_r("path/to/other/directory")
 | |
|       RUBY
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe "rm_f" do
 | |
|     it "registers an offense" do
 | |
|       expect_offense(<<~RUBY)
 | |
|         rm_f("path/to/directory")
 | |
|         ^^^^^^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|         FileUtils.rm_f("path/to/other/directory")
 | |
|         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|       RUBY
 | |
|     end
 | |
| 
 | |
|     it "autocorrects" do
 | |
|       corrected = autocorrect_source(<<~RUBY)
 | |
|         rm_f("path/to/directory")
 | |
|         FileUtils.rm_f("path/to/other/directory")
 | |
|       RUBY
 | |
| 
 | |
|       expect(corrected).to eq(<<~RUBY)
 | |
|         rm("path/to/directory")
 | |
|         FileUtils.rm("path/to/other/directory")
 | |
|       RUBY
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe "rmtree" do
 | |
|     it "registers an offense" do
 | |
|       expect_offense(<<~RUBY)
 | |
|         rmtree("path/to/directory")
 | |
|         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|         other_dir = Pathname("path/to/other/directory")
 | |
|         other_dir.rmtree
 | |
|         ^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|         def buildpath
 | |
|           Pathname("path/to/yet/another/directory")
 | |
|         end
 | |
|         buildpath.rmtree
 | |
|         ^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|         (path/"here").rmtree
 | |
|         ^^^^^^^^^^^^^^^^^^^^ Homebrew/NoFileutilsRmrf: #{RuboCop::Cop::Homebrew::NoFileutilsRmrf::MSG}
 | |
|       RUBY
 | |
|     end
 | |
| 
 | |
|     it "autocorrects" do
 | |
|       corrected = autocorrect_source(<<~RUBY)
 | |
|         rmtree("path/to/directory")
 | |
|         other_dir = Pathname("path/to/other/directory")
 | |
|         other_dir.rmtree
 | |
|         def buildpath
 | |
|           Pathname("path/to/yet/another/directory")
 | |
|         end
 | |
|         buildpath.rmtree
 | |
|         (path/"here").rmtree
 | |
|       RUBY
 | |
| 
 | |
|       expect(corrected).to eq(<<~RUBY)
 | |
|         rm_r("path/to/directory")
 | |
|         other_dir = Pathname("path/to/other/directory")
 | |
|         FileUtils.rm_r(other_dir)
 | |
|         def buildpath
 | |
|           Pathname("path/to/yet/another/directory")
 | |
|         end
 | |
|         FileUtils.rm_r(buildpath)
 | |
|         FileUtils.rm_r(path/"here")
 | |
|       RUBY
 | |
|     end
 | |
|   end
 | |
| end
 | 
