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
|