summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorschneems <richard.schneeman+foo@gmail.com>2023-03-17 16:07:27 -0500
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-04-06 15:49:26 +0900
commit7ab640d9dd27eefdec138a0cf611072a76cc6cba (patch)
treef32a33455b9dc354d390a8554d3bf3b740593b44 /spec
parent8d72d6159c75f2ed40510d7721c6e5fbdb1976af (diff)
downloadruby-7ab640d9dd27eefdec138a0cf611072a76cc6cba.tar.gz
v1.0.4
Diffstat (limited to 'spec')
-rw-r--r--spec/syntax_suggest/unit/core_ext_spec.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/syntax_suggest/unit/core_ext_spec.rb b/spec/syntax_suggest/unit/core_ext_spec.rb
new file mode 100644
index 0000000000..802d03ecc0
--- /dev/null
+++ b/spec/syntax_suggest/unit/core_ext_spec.rb
@@ -0,0 +1,34 @@
+require_relative "../spec_helper"
+
+module SyntaxSuggest
+ RSpec.describe "Core extension" do
+ it "SyntaxError monkepatch ensures there is a newline to the end of the file" do
+ skip if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3.2")
+
+ Dir.mktmpdir do |dir|
+ tmpdir = Pathname(dir)
+ file = tmpdir.join("file.rb")
+ file.write(<<~'EOM'.strip)
+ print 'no newline
+ EOM
+
+ core_ext_file = lib_dir.join("syntax_suggest").join("core_ext")
+ require_relative core_ext_file
+
+ original_message = "blerg"
+ error = SyntaxError.new(original_message)
+ def error.set_tmp_path_for_testing=(path)
+ @tmp_path_for_testing = path
+ end
+ error.set_tmp_path_for_testing = file
+ def error.path
+ @tmp_path_for_testing
+ end
+
+ detailed = error.detailed_message(highlight: false, syntax_suggest: true)
+ expect(detailed).to include("'no newline\n#{original_message}")
+ expect(detailed).to_not include("print 'no newline#{original_message}")
+ end
+ end
+ end
+end