| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-28 08:35:36 +00:00
										 |  |  | require "cmd/shared_examples/args_parse" | 
					
						
							| 
									
										
										
										
											2024-04-01 11:58:35 -07:00
										 |  |  | require "cmd/upgrade" | 
					
						
							| 
									
										
										
										
											2019-03-28 08:35:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-01 11:58:35 -07:00
										 |  |  | RSpec.describe Homebrew::Cmd::UpgradeCmd do | 
					
						
							| 
									
										
										
										
											2025-03-06 22:59:58 -05:00
										 |  |  |   include FileUtils | 
					
						
							| 
									
										
										
										
											2019-03-28 08:35:36 +00:00
										 |  |  |   it_behaves_like "parseable arguments" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-01 16:14:25 -05:00
										 |  |  |   it "upgrades a Formula and cleans up old versions", :integration_test do | 
					
						
							| 
									
										
										
										
											2017-02-23 06:07:01 +01:00
										 |  |  |     setup_test_formula "testball" | 
					
						
							|  |  |  |     (HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-29 19:55:05 +02:00
										 |  |  |     expect { brew "upgrade" }.to be_a_success | 
					
						
							| 
									
										
										
										
											2017-02-23 06:07:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-12 19:28:02 +00:00
										 |  |  |     expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory | 
					
						
							|  |  |  |     expect(HOMEBREW_CELLAR/"testball/0.0.1").not_to exist | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2025-03-05 17:37:25 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   it "upgrades with asking for user prompts", :integration_test do | 
					
						
							|  |  |  |     setup_test_formula "testball" | 
					
						
							|  |  |  |     (HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-06 21:27:25 -05:00
										 |  |  |     expect do | 
					
						
							|  |  |  |       brew "upgrade", "--ask" | 
					
						
							|  |  |  |     end.to output(/.*Formula\s*\(1\):\s*testball.*/).to_stdout.and not_to_output.to_stderr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory | 
					
						
							|  |  |  |     expect(HOMEBREW_CELLAR/"testball/0.0.1").not_to exist | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2025-07-23 21:13:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   it "refuses to upgrades a forbidden formula", :integration_test do | 
					
						
							|  |  |  |     setup_test_formula "testball" | 
					
						
							|  |  |  |     (HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect { brew "upgrade", "testball", { "HOMEBREW_FORBIDDEN_FORMULAE" => "testball" } } | 
					
						
							|  |  |  |       .to not_to_output(%r{#{HOMEBREW_CELLAR}/testball/0\.1}o).to_stdout | 
					
						
							|  |  |  |       .and output(/testball was forbidden/).to_stderr | 
					
						
							|  |  |  |       .and be_a_failure | 
					
						
							|  |  |  |     expect(HOMEBREW_CELLAR/"testball/0.1").not_to exist | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-02-23 06:07:01 +01:00
										 |  |  | end |