57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "cmd/home"
 | |
| require "cmd/shared_examples/args_parse"
 | |
| 
 | |
| RSpec.describe Homebrew::Cmd::Home do
 | |
|   let(:testballhome_homepage) do
 | |
|     Formula["testballhome"].homepage
 | |
|   end
 | |
| 
 | |
|   let(:local_caffeine_path) do
 | |
|     cask_path("local-caffeine")
 | |
|   end
 | |
| 
 | |
|   let(:local_caffeine_homepage) do
 | |
|     Cask::CaskLoader.load(local_caffeine_path).homepage
 | |
|   end
 | |
| 
 | |
|   it_behaves_like "parseable arguments"
 | |
| 
 | |
|   it "opens the project page when no formula or cask is specified", :integration_test do
 | |
|     expect { brew "home", "HOMEBREW_BROWSER" => "echo" }
 | |
|       .to output("https://brew.sh\n").to_stdout
 | |
|       .and not_to_output.to_stderr
 | |
|       .and be_a_success
 | |
|   end
 | |
| 
 | |
|   it "opens the homepage for a given Formula", :integration_test do
 | |
|     setup_test_formula "testballhome"
 | |
| 
 | |
|     expect { brew "home", "testballhome", "HOMEBREW_BROWSER" => "echo" }
 | |
|       .to output(/#{testballhome_homepage}/).to_stdout
 | |
|       .and not_to_output.to_stderr
 | |
|       .and be_a_success
 | |
|   end
 | |
| 
 | |
|   it "opens the homepage for a given Cask", :integration_test, :needs_macos do
 | |
|     expect { brew "home", local_caffeine_path, "HOMEBREW_BROWSER" => "echo" }
 | |
|       .to output(/#{local_caffeine_homepage}/).to_stdout
 | |
|       .and output(/Treating #{Regexp.escape(local_caffeine_path)} as a cask/).to_stderr
 | |
|       .and be_a_success
 | |
|     expect { brew "home", "--cask", local_caffeine_path, "HOMEBREW_BROWSER" => "echo" }
 | |
|       .to output(/#{local_caffeine_homepage}/).to_stdout
 | |
|       .and not_to_output.to_stderr
 | |
|       .and be_a_success
 | |
|   end
 | |
| 
 | |
|   it "opens the homepages for a given formula and Cask", :integration_test, :needs_macos do
 | |
|     setup_test_formula "testballhome"
 | |
| 
 | |
|     expect { brew "home", "testballhome", local_caffeine_path, "HOMEBREW_BROWSER" => "echo" }
 | |
|       .to output(/#{testballhome_homepage} #{local_caffeine_homepage}/).to_stdout
 | |
|       .and output(/Treating #{Regexp.escape(local_caffeine_path)} as a cask/).to_stderr
 | |
|       .and be_a_success
 | |
|   end
 | |
| end
 | 
