133 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "rubocop"
 | |
| require "rubocop/rspec/support"
 | |
| require_relative "../../extend/string"
 | |
| require_relative "../../rubocops/options_cop"
 | |
| 
 | |
| describe RuboCop::Cop::FormulaAudit::Options do
 | |
|   subject(:cop) { described_class.new }
 | |
| 
 | |
|   context "When auditing options" do
 | |
|     it "32-bit" do
 | |
|       source = <<-EOS.undent
 | |
|         class Foo < Formula
 | |
|           url 'http://example.com/foo-1.0.tgz'
 | |
|           option "32-bit", "with 32-bit"
 | |
|         end
 | |
|       EOS
 | |
| 
 | |
|       expected_offenses = [{  message: described_class::DEPRECATION_MSG,
 | |
|                               severity: :convention,
 | |
|                               line: 3,
 | |
|                               column: 10,
 | |
|                               source: source }]
 | |
| 
 | |
|       inspect_source(source)
 | |
| 
 | |
|       expected_offenses.zip(cop.offenses).each do |expected, actual|
 | |
|         expect_offense(expected, actual)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| describe RuboCop::Cop::FormulaAuditStrict::Options do
 | |
|   subject(:cop) { described_class.new }
 | |
| 
 | |
|   context "When auditing options strictly" do
 | |
|     it "with universal" do
 | |
|       source = <<-EOS.undent
 | |
|         class Foo < Formula
 | |
|           url 'http://example.com/foo-1.0.tgz'
 | |
|           option :universal
 | |
|         end
 | |
|       EOS
 | |
| 
 | |
|       expected_offenses = [{  message: described_class::DEPRECATION_MSG,
 | |
|                               severity: :convention,
 | |
|                               line: 3,
 | |
|                               column: 2,
 | |
|                               source: source }]
 | |
| 
 | |
|       inspect_source(source)
 | |
| 
 | |
|       expected_offenses.zip(cop.offenses).each do |expected, actual|
 | |
|         expect_offense(expected, actual)
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     it "with deprecated options" do
 | |
|       source = <<-EOS.undent
 | |
|         class Foo < Formula
 | |
|           url 'http://example.com/foo-1.0.tgz'
 | |
|           option :cxx11
 | |
|           option "examples", "with-examples"
 | |
|         end
 | |
|       EOS
 | |
| 
 | |
|       MSG_1 = "Options should begin with with/without."\
 | |
|               " Migrate '--examples' with `deprecated_option`.".freeze
 | |
|       expected_offenses = [{  message: MSG_1,
 | |
|                               severity: :convention,
 | |
|                               line: 4,
 | |
|                               column: 2,
 | |
|                               source: source }]
 | |
| 
 | |
|       inspect_source(source)
 | |
| 
 | |
|       expected_offenses.zip(cop.offenses).each do |expected, actual|
 | |
|         expect_offense(expected, actual)
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     it "with misc deprecated options" do
 | |
|       source = <<-EOS.undent
 | |
|         class Foo < Formula
 | |
|           url 'http://example.com/foo-1.0.tgz'
 | |
|           option "without-check"
 | |
|         end
 | |
|       EOS
 | |
| 
 | |
|       MSG_2 = "Use '--without-test' instead of '--without-check'."\
 | |
|               " Migrate '--without-check' with `deprecated_option`.".freeze
 | |
|       expected_offenses = [{  message: MSG_2,
 | |
|                               severity: :convention,
 | |
|                               line: 3,
 | |
|                               column: 2,
 | |
|                               source: source }]
 | |
| 
 | |
|       inspect_source(source)
 | |
| 
 | |
|       expected_offenses.zip(cop.offenses).each do |expected, actual|
 | |
|         expect_offense(expected, actual)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| describe RuboCop::Cop::NewFormulaAudit::Options do
 | |
|   subject(:cop) { described_class.new }
 | |
| 
 | |
|   context "When auditing options for a new formula" do
 | |
|     it "with deprecated options" do
 | |
|       source = <<-EOS.undent
 | |
|         class Foo < Formula
 | |
|           url 'http://example.com/foo-1.0.tgz'
 | |
|           deprecated_option "examples" => "with-examples"
 | |
|         end
 | |
|       EOS
 | |
| 
 | |
|       expected_offenses = [{  message: described_class::MSG,
 | |
|                               severity: :convention,
 | |
|                               line: 3,
 | |
|                               column: 2,
 | |
|                               source: source }]
 | |
| 
 | |
|       inspect_source(source)
 | |
| 
 | |
|       expected_offenses.zip(cop.offenses).each do |expected, actual|
 | |
|         expect_offense(expected, actual)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
