summaryrefslogtreecommitdiff
path: root/test/irb
diff options
context:
space:
mode:
authorStan Lo <[email protected]>2025-01-11 22:03:54 +0800
committergit <[email protected]>2025-01-11 14:03:59 +0000
commit76b620b341b54eb80028f03cc828333defacc87e (patch)
tree246068e06193c214f8ef31be2a9afc6eb22cb416 /test/irb
parent80d28785c4385f5688db90b448c99dc1dc042a6a (diff)
[ruby/irb] `IRB.conf[:SAVE_HISTORY]` should handle boolean values
(https://github.com/ruby/irb/pull/1062) Although not documented, `IRB.conf[:SAVE_HISTORY]` used to accept boolean, which now causes `NoMethodError` when used. This commit changes the behavior to accept boolean values and adds tests for the behavior. https://github.com/ruby/irb/commit/8b1a07b2a8
Diffstat (limited to 'test/irb')
-rw-r--r--test/irb/test_history.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/irb/test_history.rb b/test/irb/test_history.rb
index 021bb682c1..0171bb0eca 100644
--- a/test/irb/test_history.rb
+++ b/test/irb/test_history.rb
@@ -279,6 +279,47 @@ module TestIRB
end
class IRBHistoryIntegrationTest < IntegrationTestCase
+ def test_history_saving_can_be_disabled_with_false
+ write_history ""
+ write_rc <<~RUBY
+ IRB.conf[:SAVE_HISTORY] = false
+ RUBY
+
+ write_ruby <<~'RUBY'
+ binding.irb
+ RUBY
+
+ output = run_ruby_file do
+ type "puts 'foo' + 'bar'"
+ type "exit"
+ end
+
+ assert_include(output, "foobar")
+ assert_equal "", @history_file.open.read
+ end
+
+ def test_history_saving_accepts_true
+ write_history ""
+ write_rc <<~RUBY
+ IRB.conf[:SAVE_HISTORY] = true
+ RUBY
+
+ write_ruby <<~'RUBY'
+ binding.irb
+ RUBY
+
+ output = run_ruby_file do
+ type "puts 'foo' + 'bar'"
+ type "exit"
+ end
+
+ assert_include(output, "foobar")
+ assert_equal <<~HISTORY, @history_file.open.read
+ puts 'foo' + 'bar'
+ exit
+ HISTORY
+ end
+
def test_history_saving_with_debug
write_history ""