| 
									
										
										
										
											2022-07-15 15:19:59 +01:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Utils do | 
					
						
							| 
									
										
										
										
											2022-07-16 02:49:33 +01:00
										 |  |  |   describe "ruby_check_version_script" do | 
					
						
							| 
									
										
										
										
											2022-07-15 15:19:59 +01:00
										 |  |  |     subject do | 
					
						
							| 
									
										
										
										
											2022-10-18 01:32:55 +01:00
										 |  |  |       homebrew_env = ENV.select { |key, _| key.start_with?("HOMEBREW_") } | 
					
						
							|  |  |  |       Bundler.with_unbundled_env do | 
					
						
							| 
									
										
										
										
											2023-09-29 01:58:41 +01:00
										 |  |  |         ENV.delete_if { |key,| key.start_with?("HOMEBREW_") } | 
					
						
							| 
									
										
										
										
											2022-10-18 01:32:55 +01:00
										 |  |  |         ENV.update(homebrew_env) | 
					
						
							|  |  |  |         quiet_system "#{HOMEBREW_LIBRARY_PATH}/utils/ruby_check_version_script.rb", required_ruby_version | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2022-07-15 15:19:59 +01:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     before do | 
					
						
							|  |  |  |       ENV.delete("HOMEBREW_DEVELOPER") | 
					
						
							|  |  |  |       ENV.delete("HOMEBREW_USE_RUBY_FROM_PATH") | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-18 01:32:55 +01:00
										 |  |  |     describe "succeeds on the running Ruby version" do | 
					
						
							|  |  |  |       let(:required_ruby_version) { RUBY_VERSION } | 
					
						
							| 
									
										
										
										
											2022-07-15 15:19:59 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       it { is_expected.to be true } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe "succeeds on newer mismatched major/minor required Ruby version and configurated environment" do | 
					
						
							|  |  |  |       let(:required_ruby_version) { "2.0.0" } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       before do | 
					
						
							|  |  |  |         ENV["HOMEBREW_DEVELOPER"] = "1" | 
					
						
							|  |  |  |         ENV["HOMEBREW_USE_RUBY_FROM_PATH"] = "1" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it { is_expected.to be true } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe "fails on on mismatched major/minor required Ruby version" do | 
					
						
							|  |  |  |       let(:required_ruby_version) { "1.2.3" } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it { is_expected.to be false } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe "fails on invalid required Ruby version" do | 
					
						
							|  |  |  |       let(:required_ruby_version) { "fish" } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it { is_expected.to be false } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |