 b3ab410215
			
		
	
	
		b3ab410215
		
			
		
	
	
	
	
		
			
			The existing `LivecheckUrlProvided` RuboCop requires a `url` for all `livecheck` blocks except those using `skip`, `formula`, or `cask`, as those only appear in a `livecheck` block with no other DSL methods. We now have a `throttle` method that can be used alongside other DSL methods (e.g., `url`, `regex`, `strategy`) or by itself. `brew style` currently fails when `throttle` is used by itself, so this reworks the conditions to allow this usage.
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "rubocops/livecheck"
 | |
| 
 | |
| RSpec.describe RuboCop::Cop::FormulaAudit::LivecheckUrlProvided do
 | |
|   subject(:cop) { described_class.new }
 | |
| 
 | |
|   it "reports an offense when a `url` is not specified in a livecheck block" do
 | |
|     expect_offense(<<~RUBY)
 | |
|       class Foo < Formula
 | |
|         url "https://brew.sh/foo-1.0.tgz"
 | |
| 
 | |
|         livecheck do
 | |
|         ^^^^^^^^^^^^ FormulaAudit/LivecheckUrlProvided: A `url` should be provided when `regex` or `strategy` are used.
 | |
|           regex(%r{href=.*?/formula[._-]v?(\\d+(?:\\.\\d+)+)\\.t}i)
 | |
|         end
 | |
|       end
 | |
|     RUBY
 | |
| 
 | |
|     expect_offense(<<~RUBY)
 | |
|       class Foo < Formula
 | |
|         url "https://brew.sh/foo-1.0.tgz"
 | |
| 
 | |
|         livecheck do
 | |
|         ^^^^^^^^^^^^ FormulaAudit/LivecheckUrlProvided: A `url` should be provided when `regex` or `strategy` are used.
 | |
|           strategy :page_match
 | |
|         end
 | |
|       end
 | |
|     RUBY
 | |
|   end
 | |
| 
 | |
|   it "reports no offenses when a `url` and `regex` are specified in the livecheck block" do
 | |
|     expect_no_offenses(<<~RUBY)
 | |
|       class Foo < Formula
 | |
|         url "https://brew.sh/foo-1.0.tgz"
 | |
| 
 | |
|         livecheck do
 | |
|           url :stable
 | |
|           regex(%r{href=.*?/formula[._-]v?(\\d+(?:\\.\\d+)+)\\.t}i)
 | |
|         end
 | |
|       end
 | |
|     RUBY
 | |
|   end
 | |
| 
 | |
|   it "reports no offenses when a `url` and `strategy` are specified in the livecheck block" do
 | |
|     expect_no_offenses(<<~RUBY)
 | |
|       class Foo < Formula
 | |
|         url "https://brew.sh/foo-1.0.tgz"
 | |
| 
 | |
|         livecheck do
 | |
|           url :stable
 | |
|           strategy :page_match
 | |
|         end
 | |
|       end
 | |
|     RUBY
 | |
|   end
 | |
| end
 |