diff options
author | schneems <richard.schneeman+foo@gmail.com> | 2023-03-17 16:07:27 -0500 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-04-06 15:49:26 +0900 |
commit | 7ab640d9dd27eefdec138a0cf611072a76cc6cba (patch) | |
tree | f32a33455b9dc354d390a8554d3bf3b740593b44 /spec | |
parent | 8d72d6159c75f2ed40510d7721c6e5fbdb1976af (diff) | |
download | ruby-7ab640d9dd27eefdec138a0cf611072a76cc6cba.tar.gz |
v1.0.4
Diffstat (limited to 'spec')
-rw-r--r-- | spec/syntax_suggest/unit/core_ext_spec.rb | 34 |
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 |