summaryrefslogtreecommitdiff
path: root/spec/syntax_suggest
diff options
context:
space:
mode:
Diffstat (limited to 'spec/syntax_suggest')
-rw-r--r--spec/syntax_suggest/integration/ruby_command_line_spec.rb8
-rw-r--r--spec/syntax_suggest/integration/syntax_suggest_spec.rb16
-rw-r--r--spec/syntax_suggest/unit/api_spec.rb6
-rw-r--r--spec/syntax_suggest/unit/around_block_scan_spec.rb2
-rw-r--r--spec/syntax_suggest/unit/block_expand_spec.rb4
-rw-r--r--spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb4
-rw-r--r--spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb4
-rw-r--r--spec/syntax_suggest/unit/capture_code_context_spec.rb32
-rw-r--r--spec/syntax_suggest/unit/clean_document_spec.rb14
-rw-r--r--spec/syntax_suggest/unit/code_line_spec.rb12
-rw-r--r--spec/syntax_suggest/unit/code_search_spec.rb82
-rw-r--r--spec/syntax_suggest/unit/core_ext_spec.rb2
-rw-r--r--spec/syntax_suggest/unit/explain_syntax_spec.rb4
-rw-r--r--spec/syntax_suggest/unit/lex_all_spec.rb3
-rw-r--r--spec/syntax_suggest/unit/pathname_from_message_spec.rb9
-rw-r--r--spec/syntax_suggest/unit/scan_history_spec.rb6
16 files changed, 110 insertions, 98 deletions
diff --git a/spec/syntax_suggest/integration/ruby_command_line_spec.rb b/spec/syntax_suggest/integration/ruby_command_line_spec.rb
index b41a4c86e3..c1ec4be54e 100644
--- a/spec/syntax_suggest/integration/ruby_command_line_spec.rb
+++ b/spec/syntax_suggest/integration/ruby_command_line_spec.rb
@@ -9,7 +9,7 @@ module SyntaxSuggest
Dir.mktmpdir do |dir|
tmpdir = Pathname(dir)
script = tmpdir.join("script.rb")
- script.write <<~'EOM'
+ script.write <<~EOM
puts Kernel.private_methods
EOM
@@ -159,7 +159,7 @@ module SyntaxSuggest
Dir.mktmpdir do |dir|
tmpdir = Pathname(dir)
script = tmpdir.join("script.rb")
- script.write <<~'EOM'
+ script.write <<~EOM
$stderr = STDOUT
eval("def lol")
EOM
@@ -167,7 +167,7 @@ module SyntaxSuggest
out = `#{ruby} -I#{lib_dir} -rsyntax_suggest #{script} 2>&1`
expect($?.success?).to be_falsey
- expect(out).to include("(eval):1")
+ expect(out).to match(/\(eval.*\):1/)
expect(out).to_not include("SyntaxSuggest")
expect(out).to_not include("Could not find filename")
@@ -178,7 +178,7 @@ module SyntaxSuggest
Dir.mktmpdir do |dir|
tmpdir = Pathname(dir)
script = tmpdir.join("script.rb")
- script.write <<~'EOM'
+ script.write <<~EOM
break
EOM
diff --git a/spec/syntax_suggest/integration/syntax_suggest_spec.rb b/spec/syntax_suggest/integration/syntax_suggest_spec.rb
index 64dafabcdd..9071d37c1b 100644
--- a/spec/syntax_suggest/integration/syntax_suggest_spec.rb
+++ b/spec/syntax_suggest/integration/syntax_suggest_spec.rb
@@ -26,7 +26,7 @@ module SyntaxSuggest
debug_display(io.string)
debug_display(benchmark)
- expect(io.string).to include(<<~'EOM')
+ expect(io.string).to include(<<~EOM)
6 class SyntaxTree < Ripper
170 def self.parse(source)
174 end
@@ -54,7 +54,7 @@ module SyntaxSuggest
end
expect(io.string).to_not include("def ruby_install_binstub_path")
- expect(io.string).to include(<<~'EOM')
+ expect(io.string).to include(<<~EOM)
> 1067 def add_yarn_binary
> 1068 return [] if yarn_preinstalled?
> 1069 |
@@ -72,7 +72,7 @@ module SyntaxSuggest
)
debug_display(io.string)
- expect(io.string).to include(<<~'EOM')
+ expect(io.string).to include(<<~EOM)
1 Rails.application.routes.draw do
> 113 namespace :admin do
> 116 match "/foobar(*path)", via: :all, to: redirect { |_params, req|
@@ -91,7 +91,7 @@ module SyntaxSuggest
)
debug_display(io.string)
- expect(io.string).to include(<<~'EOM')
+ expect(io.string).to include(<<~EOM)
1 describe "webmock tests" do
22 it "body" do
27 query = Cutlass::FunctionQuery.new(
@@ -113,7 +113,7 @@ module SyntaxSuggest
)
debug_display(io.string)
- expect(io.string).to include(<<~'EOM')
+ expect(io.string).to include(<<~EOM)
5 module DerailedBenchmarks
6 class RequireTree
> 13 def initialize(name)
@@ -166,7 +166,7 @@ module SyntaxSuggest
end
it "ambiguous end" do
- source = <<~'EOM'
+ source = <<~EOM
def call # 0
print "lol" # 1
end # one # 2
@@ -186,7 +186,7 @@ module SyntaxSuggest
end
it "simple regression" do
- source = <<~'EOM'
+ source = <<~EOM
class Dog
def bark
puts "woof"
@@ -206,7 +206,7 @@ module SyntaxSuggest
end
it "empty else" do
- source = <<~'EOM'
+ source = <<~EOM
class Foo
def foo
if cond?
diff --git a/spec/syntax_suggest/unit/api_spec.rb b/spec/syntax_suggest/unit/api_spec.rb
index 079a91e46d..e900b9e10b 100644
--- a/spec/syntax_suggest/unit/api_spec.rb
+++ b/spec/syntax_suggest/unit/api_spec.rb
@@ -8,6 +8,12 @@ end
module SyntaxSuggest
RSpec.describe "Top level SyntaxSuggest api" do
+ it "doesn't load prism if env var is set" do
+ skip("SYNTAX_SUGGEST_DISABLE_PRISM not set") unless ENV["SYNTAX_SUGGEST_DISABLE_PRISM"]
+
+ expect(SyntaxSuggest.use_prism_parser?).to be_falsey
+ end
+
it "has a `handle_error` interface" do
fake_error = Object.new
def fake_error.message
diff --git a/spec/syntax_suggest/unit/around_block_scan_spec.rb b/spec/syntax_suggest/unit/around_block_scan_spec.rb
index d6756448bd..6c940a5919 100644
--- a/spec/syntax_suggest/unit/around_block_scan_spec.rb
+++ b/spec/syntax_suggest/unit/around_block_scan_spec.rb
@@ -5,7 +5,7 @@ require_relative "../spec_helper"
module SyntaxSuggest
RSpec.describe AroundBlockScan do
it "continues scan from last location even if scan is false" do
- source = <<~'EOM'
+ source = <<~EOM
print 'omg'
print 'lol'
print 'haha'
diff --git a/spec/syntax_suggest/unit/block_expand_spec.rb b/spec/syntax_suggest/unit/block_expand_spec.rb
index 5cff73621d..fde0360775 100644
--- a/spec/syntax_suggest/unit/block_expand_spec.rb
+++ b/spec/syntax_suggest/unit/block_expand_spec.rb
@@ -146,7 +146,7 @@ module SyntaxSuggest
EOM
end
- it "expand until next boundry (indentation)" do
+ it "expand until next boundary (indentation)" do
source_string = <<~EOM
describe "what" do
Foo.call
@@ -188,7 +188,7 @@ module SyntaxSuggest
EOM
end
- it "expand until next boundry (empty lines)" do
+ it "expand until next boundary (empty lines)" do
source_string = <<~EOM
describe "what" do
end
diff --git a/spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb b/spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb
index 02d9be4387..09f8d90d33 100644
--- a/spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb
+++ b/spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb
@@ -5,7 +5,7 @@ require_relative "../../spec_helper"
module SyntaxSuggest
RSpec.describe Capture::BeforeAfterKeywordEnds do
it "before after keyword ends" do
- source = <<~'EOM'
+ source = <<~EOM
def nope
print 'not me'
end
@@ -36,7 +36,7 @@ module SyntaxSuggest
).call
lines.sort!
- expect(lines.join).to include(<<~'EOM')
+ expect(lines.join).to include(<<~EOM)
def lol
end
def yolo
diff --git a/spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb b/spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb
index 61d1642d97..ed2265539a 100644
--- a/spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb
+++ b/spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb
@@ -5,7 +5,7 @@ require_relative "../../spec_helper"
module SyntaxSuggest
RSpec.describe Capture::FallingIndentLines do
it "on_falling_indent" do
- source = <<~'EOM'
+ source = <<~EOM
class OH
def lol
print 'lol
@@ -33,7 +33,7 @@ module SyntaxSuggest
end
lines.sort!
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
class OH
def hello
end
diff --git a/spec/syntax_suggest/unit/capture_code_context_spec.rb b/spec/syntax_suggest/unit/capture_code_context_spec.rb
index 46f13e8961..d9379d0ce7 100644
--- a/spec/syntax_suggest/unit/capture_code_context_spec.rb
+++ b/spec/syntax_suggest/unit/capture_code_context_spec.rb
@@ -5,7 +5,7 @@ require_relative "../spec_helper"
module SyntaxSuggest
RSpec.describe CaptureCodeContext do
it "capture_before_after_kws two" do
- source = <<~'EOM'
+ source = <<~EOM
class OH
def hello
@@ -23,7 +23,7 @@ module SyntaxSuggest
code_lines: code_lines
)
display.capture_before_after_kws(block)
- expect(display.sorted_lines.join).to eq(<<~'EOM'.indent(2))
+ expect(display.sorted_lines.join).to eq(<<~EOM.indent(2))
def hello
def hai
end
@@ -31,7 +31,7 @@ module SyntaxSuggest
end
it "capture_before_after_kws" do
- source = <<~'EOM'
+ source = <<~EOM
def sit
end
@@ -50,7 +50,7 @@ module SyntaxSuggest
)
lines = display.capture_before_after_kws(block).sort
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
def sit
end
def bark
@@ -60,7 +60,7 @@ module SyntaxSuggest
end
it "handles ambiguous end" do
- source = <<~'EOM'
+ source = <<~EOM
def call # 0
print "lol" # 1
end # one # 2
@@ -79,7 +79,7 @@ module SyntaxSuggest
lines = lines.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
def call # 0
end # one # 2
end # two # 3
@@ -94,7 +94,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
code_lines[0..75].each(&:mark_invisible)
- code_lines[77..-1].each(&:mark_invisible)
+ code_lines[77..].each(&:mark_invisible)
expect(code_lines.join.strip).to eq("class Lookups")
block = CodeBlock.new(lines: code_lines[76..149])
@@ -106,7 +106,7 @@ module SyntaxSuggest
lines = display.call
lines = lines.sort.map(&:original)
- expect(lines.join).to include(<<~'EOM'.indent(2))
+ expect(lines.join).to include(<<~EOM.indent(2))
class Lookups
def format_requires
end
@@ -114,7 +114,7 @@ module SyntaxSuggest
end
it "shows ends of captured block" do
- source = <<~'EOM'
+ source = <<~EOM
class Dog
def bark
puts "woof"
@@ -123,7 +123,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
block = CodeBlock.new(lines: code_lines)
- code_lines[1..-1].each(&:mark_invisible)
+ code_lines[1..].each(&:mark_invisible)
expect(block.to_s.strip).to eq("class Dog")
@@ -132,7 +132,7 @@ module SyntaxSuggest
code_lines: code_lines
)
lines = display.call.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
class Dog
def bark
end
@@ -140,7 +140,7 @@ module SyntaxSuggest
end
it "captures surrounding context on falling indent" do
- source = <<~'EOM'
+ source = <<~EOM
class Blerg
end
@@ -164,7 +164,7 @@ module SyntaxSuggest
code_lines: code_lines
)
lines = display.call.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
class OH
def hello
it "foo" do
@@ -174,7 +174,7 @@ module SyntaxSuggest
end
it "captures surrounding context on same indent" do
- source = <<~'EOM'
+ source = <<~EOM
class Blerg
end
class OH
@@ -200,7 +200,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
block = CodeBlock.new(lines: code_lines[7..10])
- expect(block.to_s).to eq(<<~'EOM'.indent(2))
+ expect(block.to_s).to eq(<<~EOM.indent(2))
def lol
end
@@ -217,7 +217,7 @@ module SyntaxSuggest
lines: lines
).call
- expect(out).to eq(<<~'EOM'.indent(2))
+ expect(out).to eq(<<~EOM.indent(2))
3 class OH
8 def lol
9 end
diff --git a/spec/syntax_suggest/unit/clean_document_spec.rb b/spec/syntax_suggest/unit/clean_document_spec.rb
index 25a62e4454..5b5ca04cfd 100644
--- a/spec/syntax_suggest/unit/clean_document_spec.rb
+++ b/spec/syntax_suggest/unit/clean_document_spec.rb
@@ -8,7 +8,7 @@ module SyntaxSuggest
source = fixtures_dir.join("this_project_extra_def.rb.txt").read
code_lines = CleanDocument.new(source: source).call.lines
- expect(code_lines[18 - 1].to_s).to eq(<<-'EOL')
+ expect(code_lines[18 - 1].to_s).to eq(<<-EOL)
@io.puts <<~EOM
SyntaxSuggest: A syntax error was detected
@@ -54,7 +54,7 @@ module SyntaxSuggest
DisplayCodeWithLineNumbers.new(
lines: lines
).call
- ).to eq(<<~'EOM'.indent(2))
+ ).to eq(<<~EOM.indent(2))
1 User
2 .where(name: 'schneems')
3 .first
@@ -65,7 +65,7 @@ module SyntaxSuggest
lines: lines,
highlight_lines: lines[0]
).call
- ).to eq(<<~'EOM')
+ ).to eq(<<~EOM)
> 1 User
> 2 .where(name: 'schneems')
> 3 .first
@@ -85,7 +85,7 @@ module SyntaxSuggest
code_lines = doc.lines
expect(code_lines[0].to_s.count($/)).to eq(5)
- code_lines[1..-1].each do |line|
+ code_lines[1..].each do |line|
expect(line.to_s.strip.length).to eq(0)
end
end
@@ -139,7 +139,7 @@ module SyntaxSuggest
source = <<~'EOM'
context "timezones workaround" do
it "should receive a time in UTC format and return the time with the"\
- "office's UTC offset substracted from it" do
+ "office's UTC offset subtracted from it" do
travel_to DateTime.new(2020, 10, 1, 10, 0, 0) do
office = build(:office)
end
@@ -155,7 +155,7 @@ module SyntaxSuggest
).to eq(<<~'EOM'.indent(2))
1 context "timezones workaround" do
2 it "should receive a time in UTC format and return the time with the"\
- 3 "office's UTC offset substracted from it" do
+ 3 "office's UTC offset subtracted from it" do
4 travel_to DateTime.new(2020, 10, 1, 10, 0, 0) do
5 office = build(:office)
6 end
@@ -171,7 +171,7 @@ module SyntaxSuggest
).to eq(<<~'EOM')
1 context "timezones workaround" do
> 2 it "should receive a time in UTC format and return the time with the"\
- > 3 "office's UTC offset substracted from it" do
+ > 3 "office's UTC offset subtracted from it" do
4 travel_to DateTime.new(2020, 10, 1, 10, 0, 0) do
5 office = build(:office)
6 end
diff --git a/spec/syntax_suggest/unit/code_line_spec.rb b/spec/syntax_suggest/unit/code_line_spec.rb
index d5b568fd19..5b62cc2757 100644
--- a/spec/syntax_suggest/unit/code_line_spec.rb
+++ b/spec/syntax_suggest/unit/code_line_spec.rb
@@ -5,7 +5,7 @@ require_relative "../spec_helper"
module SyntaxSuggest
RSpec.describe CodeLine do
it "bug in keyword detection" do
- lines = CodeLine.from_source(<<~'EOM')
+ lines = CodeLine.from_source(<<~EOM)
def to_json(*opts)
{
type: :module,
@@ -19,7 +19,7 @@ module SyntaxSuggest
it "supports endless method definitions" do
skip("Unsupported ruby version") unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3")
- line = CodeLine.from_source(<<~'EOM').first
+ line = CodeLine.from_source(<<~EOM).first
def square(x) = x * x
EOM
@@ -28,7 +28,7 @@ module SyntaxSuggest
end
it "retains original line value, after being marked invisible" do
- line = CodeLine.from_source(<<~'EOM').first
+ line = CodeLine.from_source(<<~EOM).first
puts "lol"
EOM
expect(line.line).to match('puts "lol"')
@@ -38,7 +38,7 @@ module SyntaxSuggest
end
it "knows which lines can be joined" do
- code_lines = CodeLine.from_source(<<~'EOM')
+ code_lines = CodeLine.from_source(<<~EOM)
user = User.
where(name: 'schneems').
first
@@ -50,7 +50,7 @@ module SyntaxSuggest
end
it "trailing if" do
- code_lines = CodeLine.from_source(<<~'EOM')
+ code_lines = CodeLine.from_source(<<~EOM)
puts "lol" if foo
if foo
end
@@ -60,7 +60,7 @@ module SyntaxSuggest
end
it "trailing unless" do
- code_lines = CodeLine.from_source(<<~'EOM')
+ code_lines = CodeLine.from_source(<<~EOM)
puts "lol" unless foo
unless foo
end
diff --git a/spec/syntax_suggest/unit/code_search_spec.rb b/spec/syntax_suggest/unit/code_search_spec.rb
index f836ba36f3..502de14d7f 100644
--- a/spec/syntax_suggest/unit/code_search_spec.rb
+++ b/spec/syntax_suggest/unit/code_search_spec.rb
@@ -12,13 +12,13 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join.strip).to eq(<<~'EOM'.strip)
+ expect(search.invalid_blocks.join.strip).to eq(<<~EOM.strip)
class Lookups
EOM
end
it "squished do regression" do
- source = <<~'EOM'
+ source = <<~EOM
def call
trydo
@@ -47,14 +47,14 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
trydo
end # one
EOM
end
it "regression test ambiguous end" do
- source = <<~'EOM'
+ source = <<~EOM
def call # 0
print "lol" # 1
end # one # 2
@@ -64,13 +64,13 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
end # two # 3
EOM
end
it "regression dog test" do
- source = <<~'EOM'
+ source = <<~EOM
class Dog
def bark
puts "woof"
@@ -79,7 +79,7 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
class Dog
EOM
expect(search.invalid_blocks.first.lines.length).to eq(4)
@@ -99,7 +99,7 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
Foo.call do |a
end # one
EOM
@@ -118,7 +118,7 @@ module SyntaxSuggest
search = CodeSearch.new(source)
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
Foo.call do {
EOM
end
@@ -152,7 +152,7 @@ module SyntaxSuggest
end
it "handles no spaces between blocks" do
- source = <<~'EOM'
+ source = <<~EOM
context "foo bar" do
it "bars the foo" do
travel_to DateTime.new(2020, 10, 1, 10, 0, 0) do
@@ -172,7 +172,7 @@ module SyntaxSuggest
it "records debugging steps to a directory" do
Dir.mktmpdir do |dir|
dir = Pathname(dir)
- search = CodeSearch.new(<<~'EOM', record_dir: dir)
+ search = CodeSearch.new(<<~EOM, record_dir: dir)
class OH
def hello
def hai
@@ -193,7 +193,7 @@ module SyntaxSuggest
end
it "def with missing end" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
class OH
def hello
@@ -206,7 +206,7 @@ module SyntaxSuggest
expect(search.invalid_blocks.join.strip).to eq("def hello")
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
class OH
def hello
@@ -218,7 +218,7 @@ module SyntaxSuggest
expect(search.invalid_blocks.join.strip).to eq("def hello")
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
class OH
def hello
def hai
@@ -227,7 +227,7 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
def hello
EOM
end
@@ -244,13 +244,13 @@ module SyntaxSuggest
highlight_lines: search.invalid_blocks.flat_map(&:lines)
).call
- expect(document).to include(<<~'EOM')
+ expect(document).to include(<<~EOM)
> 36 def filename
EOM
end
it "Format Code blocks real world example" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
require 'rails_helper'
RSpec.describe AclassNameHere, type: :worker do
@@ -291,7 +291,7 @@ module SyntaxSuggest
highlight_lines: search.invalid_blocks.flat_map(&:lines)
).call
- expect(document).to include(<<~'EOM')
+ expect(document).to include(<<~EOM)
1 require 'rails_helper'
2
3 RSpec.describe AclassNameHere, type: :worker do
@@ -308,7 +308,7 @@ module SyntaxSuggest
describe "needs improvement" do
describe "mis-matched-indentation" do
it "extra space before end" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
Foo.call
def foo
puts "lol"
@@ -318,14 +318,14 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call
end # two
EOM
end
it "stacked ends 2" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
def cat
blerg
end
@@ -339,7 +339,7 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call do
end # one
end # two
@@ -348,7 +348,7 @@ module SyntaxSuggest
end
it "stacked ends " do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
Foo.call
def foo
puts "lol"
@@ -358,14 +358,14 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call
end
EOM
end
it "missing space before end" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
Foo.call
def foo
@@ -377,7 +377,7 @@ module SyntaxSuggest
search.call
# expand-1 and expand-2 seem to be broken?
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call
end
EOM
@@ -386,7 +386,7 @@ module SyntaxSuggest
end
it "returns syntax error in outer block without inner block" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
Foo.call
def foo
puts "lol"
@@ -396,27 +396,27 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call
end # two
EOM
end
it "doesn't just return an empty `end`" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
Foo.call
end
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
Foo.call
end
EOM
end
it "finds multiple syntax errors" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
describe "hi" do
Foo.call
end
@@ -429,7 +429,7 @@ module SyntaxSuggest
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
Foo.call
end
Bar.call
@@ -438,47 +438,47 @@ module SyntaxSuggest
end
it "finds a typo def" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
defzfoo
puts "lol"
end
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM')
+ expect(search.invalid_blocks.join).to eq(<<~EOM)
defzfoo
end
EOM
end
it "finds a mis-matched def" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
def foo
def blerg
end
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
def blerg
EOM
end
it "finds a naked end" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
def foo
end # one
end # two
EOM
search.call
- expect(search.invalid_blocks.join).to eq(<<~'EOM'.indent(2))
+ expect(search.invalid_blocks.join).to eq(<<~EOM.indent(2))
end # one
EOM
end
it "returns when no invalid blocks are found" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
def foo
puts 'lol'
end
@@ -489,14 +489,14 @@ module SyntaxSuggest
end
it "expands frontier by eliminating valid lines" do
- search = CodeSearch.new(<<~'EOM')
+ search = CodeSearch.new(<<~EOM)
def foo
puts 'lol'
end
EOM
search.create_blocks_from_untracked_lines
- expect(search.code_lines.join).to eq(<<~'EOM')
+ expect(search.code_lines.join).to eq(<<~EOM)
def foo
end
EOM
diff --git a/spec/syntax_suggest/unit/core_ext_spec.rb b/spec/syntax_suggest/unit/core_ext_spec.rb
index 802d03ecc0..499c38a240 100644
--- a/spec/syntax_suggest/unit/core_ext_spec.rb
+++ b/spec/syntax_suggest/unit/core_ext_spec.rb
@@ -8,7 +8,7 @@ module SyntaxSuggest
Dir.mktmpdir do |dir|
tmpdir = Pathname(dir)
file = tmpdir.join("file.rb")
- file.write(<<~'EOM'.strip)
+ file.write(<<~EOM.strip)
print 'no newline
EOM
diff --git a/spec/syntax_suggest/unit/explain_syntax_spec.rb b/spec/syntax_suggest/unit/explain_syntax_spec.rb
index 394981dcf6..c62a42b925 100644
--- a/spec/syntax_suggest/unit/explain_syntax_spec.rb
+++ b/spec/syntax_suggest/unit/explain_syntax_spec.rb
@@ -14,7 +14,7 @@ module SyntaxSuggest
).call
expect(explain.missing).to eq([])
- expect(explain.errors.join).to include("unterminated string")
+ expect(explain.errors.join.strip).to_not be_empty
end
it "handles %w[]" do
@@ -191,7 +191,7 @@ module SyntaxSuggest
).call
expect(explain.missing).to eq([])
- expect(explain.errors).to eq(RipperErrors.new(source).call.errors)
+ expect(explain.errors).to eq(GetParseErrors.errors(source))
end
it "handles an unexpected rescue" do
diff --git a/spec/syntax_suggest/unit/lex_all_spec.rb b/spec/syntax_suggest/unit/lex_all_spec.rb
index 0c0df7cfaa..9621c9ecec 100644
--- a/spec/syntax_suggest/unit/lex_all_spec.rb
+++ b/spec/syntax_suggest/unit/lex_all_spec.rb
@@ -17,9 +17,6 @@ module SyntaxSuggest
end # 9
EOM
- # raw_lex = Ripper.lex(source)
- # expect(raw_lex.to_s).to_not include("dog")
-
lex = LexAll.new(source: source)
expect(lex.map(&:token).to_s).to include("dog")
expect(lex.first.line).to eq(1)
diff --git a/spec/syntax_suggest/unit/pathname_from_message_spec.rb b/spec/syntax_suggest/unit/pathname_from_message_spec.rb
index 76756efda9..de58acebaa 100644
--- a/spec/syntax_suggest/unit/pathname_from_message_spec.rb
+++ b/spec/syntax_suggest/unit/pathname_from_message_spec.rb
@@ -43,6 +43,15 @@ module SyntaxSuggest
expect(file).to be_falsey
end
+ it "does not output error message on syntax error inside of an (eval at __FILE__:__LINE__)" do
+ message = "(eval at #{__FILE__}:#{__LINE__}):1: invalid multibyte char (UTF-8) (SyntaxError)\n"
+ io = StringIO.new
+ file = PathnameFromMessage.new(message, io: io).call.name
+
+ expect(io.string).to eq("")
+ expect(file).to be_falsey
+ end
+
it "does not output error message on syntax error inside of streamed code" do
# An example of streamed code is: $ echo "def foo" | ruby
message = "-:1: syntax error, unexpected end-of-input\n"
diff --git a/spec/syntax_suggest/unit/scan_history_spec.rb b/spec/syntax_suggest/unit/scan_history_spec.rb
index 0e75ac66ce..d8b0a54ba6 100644
--- a/spec/syntax_suggest/unit/scan_history_spec.rb
+++ b/spec/syntax_suggest/unit/scan_history_spec.rb
@@ -5,7 +5,7 @@ require_relative "../spec_helper"
module SyntaxSuggest
RSpec.describe ScanHistory do
it "retains commits" do
- source = <<~'EOM'
+ source = <<~EOM
class OH # 0
def lol # 1
print 'lol # 2
@@ -42,7 +42,7 @@ module SyntaxSuggest
end
it "is stashable" do
- source = <<~'EOM'
+ source = <<~EOM
class OH # 0
def lol # 1
print 'lol # 2
@@ -79,7 +79,7 @@ module SyntaxSuggest
end
it "doesnt change if you dont't change it" do
- source = <<~'EOM'
+ source = <<~EOM
class OH # 0
def lol # 1
print 'lol # 2