39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | # frozen_string_literal: true | ||
|  | 
 | ||
|  | require_relative "shared_examples/requires_cask_token" | ||
|  | require_relative "shared_examples/invalid_option" | ||
|  | 
 | ||
|  | describe Cask::Cmd::Cache, :cask do | ||
|  |   let(:local_transmission) { | ||
|  |     Cask::CaskLoader.load(cask_path("local-transmission")) | ||
|  |   } | ||
|  | 
 | ||
|  |   let(:local_caffeine) { | ||
|  |     Cask::CaskLoader.load(cask_path("local-caffeine")) | ||
|  |   } | ||
|  | 
 | ||
|  |   it_behaves_like "a command that requires a Cask token" | ||
|  |   it_behaves_like "a command that handles invalid options" | ||
|  | 
 | ||
|  |   it "prints the file used to cache the Cask" do | ||
|  |     transmission_location = CurlDownloadStrategy.new( | ||
|  |       local_transmission.url.to_s, local_transmission.token, local_transmission.version, | ||
|  |       cache: Cask::Cache.path, **local_transmission.url.specs | ||
|  |     ).cached_location | ||
|  |     caffeine_location = CurlDownloadStrategy.new( | ||
|  |       local_caffeine.url.to_s, local_caffeine.token, local_caffeine.version, | ||
|  |       cache: Cask::Cache.path, **local_caffeine.url.specs | ||
|  |     ).cached_location | ||
|  | 
 | ||
|  |     expect do | ||
|  |       described_class.run("local-transmission", "local-caffeine") | ||
|  |     end.to output("#{transmission_location}\n#{caffeine_location}\n").to_stdout | ||
|  |   end | ||
|  | 
 | ||
|  |   it "properly handles Casks that are not present" do | ||
|  |     expect { | ||
|  |       described_class.run("notacask") | ||
|  |     }.to raise_error(Cask::CaskUnavailableError) | ||
|  |   end | ||
|  | end |