| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-27 11:49:56 +00:00
										 |  |  | require "cmd/shared_examples/args_parse" | 
					
						
							| 
									
										
										
										
											2024-03-21 10:39:08 -07:00
										 |  |  | require "dev-cmd/irb" | 
					
						
							| 
									
										
										
										
											2019-03-27 11:49:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-21 10:39:08 -07:00
										 |  |  | RSpec.describe Homebrew::DevCmd::Irb do | 
					
						
							| 
									
										
										
										
											2019-03-27 11:49:56 +00:00
										 |  |  |   it_behaves_like "parseable arguments" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-09 17:07:08 -08:00
										 |  |  |   describe "integration test" do | 
					
						
							|  |  |  |     let(:history_file) { Pathname("#{Dir.home}/.brew_irb_history") } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     after do | 
					
						
							|  |  |  |       history_file.delete if history_file.exist? | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "starts an interactive Homebrew shell session", :integration_test do | 
					
						
							|  |  |  |       setup_test_formula "testball" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       irb_test = HOMEBREW_TEMP/"irb-test.rb" | 
					
						
							|  |  |  |       irb_test.write <<~RUBY | 
					
						
							|  |  |  |         "testball".f | 
					
						
							|  |  |  |         :testball.f | 
					
						
							|  |  |  |         exit | 
					
						
							|  |  |  |       RUBY | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       expect { brew "irb", irb_test } | 
					
						
							|  |  |  |         .to output(/Interactive Homebrew Shell/).to_stdout | 
					
						
							|  |  |  |         .and not_to_output.to_stderr | 
					
						
							|  |  |  |         .and be_a_success | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-29 04:47:44 +01:00
										 |  |  |       # TODO: newer Ruby only supports history saving in interactive sessions | 
					
						
							|  |  |  |       # and not if you feed in data from a file or stdin like we are doing here. | 
					
						
							|  |  |  |       # The test will need to be adjusted for this to work. | 
					
						
							| 
									
										
										
										
											2023-12-12 03:09:59 +00:00
										 |  |  |       # expect(history_file).to exist | 
					
						
							| 
									
										
										
										
											2023-03-09 17:07:08 -08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-02-23 06:04:32 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | end |