Run `binding.irb` in cleaner environment and clean the history file

This commit is contained in:
Nobuyoshi Nakada 2024-03-06 20:16:50 +09:00
Родитель b543a4e9da
Коммит 29d3d13a1f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3582D74E1FEE4465
2 изменённых файлов: 9 добавлений и 9 удалений

Просмотреть файл

@ -1 +0,0 @@
# empty configuration

Просмотреть файл

@ -1,18 +1,19 @@
require_relative '../../spec_helper'
require 'tmpdir'
describe "Binding#irb" do
it "creates an IRB session with the binding in scope" do
irb_fixture = fixture __FILE__, "irb.rb"
irbrc_fixture = fixture __FILE__, "irbrc"
envs = %w[IRBRC HOME XDG_CONFIG_HOME].to_h {|e| [e, nil]}
out = IO.popen([{"IRBRC"=>irbrc_fixture}, *ruby_exe, irb_fixture], "r+") do |pipe|
pipe.puts "a ** 2"
pipe.puts "exit"
pipe.readlines.map(&:chomp)
out = Dir.mktmpdir do |dir|
IO.popen([envs, *ruby_exe, irb_fixture, chdir: dir], "r+") do |pipe|
pipe.puts "a ** 2"
pipe.puts "exit"
pipe.readlines.map(&:chomp)
end
end
[out[-3..-1], ["a ** 2", "100", "exit"]].transpose.each do |actual, expected|
actual.should include(expected)
end
out.last(3).should == ["a ** 2", "100", "exit"]
end
end