Investigate output: Dead end triggers manually, but not automatically via `.rspec`
schneems opened this issue ยท 1 comments
schneems commented
In the heroku/buildpacks-nodejs project
$ rspec test/specs/node/cutlass/
An error occurred while loading ./test/specs/node/cutlass/basic_spec.rb.
Failure/Error: dead_end_original_load(file)
SyntaxError:
/Users/rschneeman/Documents/projects/work/cnb/buildpacks-nodejs/test/specs/node/cutlass/basic_spec.rb:18: syntax error, unexpected local variable or method, expecting ')'
app.pack_build do |pack_result|
^~~
/Users/rschneeman/Documents/projects/work/cnb/buildpacks-nodejs/test/specs/node/cutlass/basic_spec.rb:25: syntax error, unexpected local variable or method, expecting ')'
app.pack_build do |pack_result|
^~~
# /Users/rschneeman/.gem/ruby/3.0.1/gems/dead_end-1.1.7/lib/dead_end/auto.rb:15:in `load'
# /Users/rschneeman/.gem/ruby/3.0.1/gems/dead_end-1.1.7/lib/dead_end/auto.rb:15:in `load'
# /Users/rschneeman/.gem/ruby/3.0.1/gems/dead_end-1.1.7/lib/dead_end/auto.rb:44:in `load'
No examples found.
Finished in 0.00564 seconds (files took 0.1702 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ dead_end test/specs/node
node/ node-function/
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ dead_end test/specs/node
node/ node-function/
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ dead_end test/specs/node/cutlass/basic_spec.rb
DeadEnd: Unmatched `)` detected
file: /Users/rschneeman/Documents/projects/work/cnb/buildpacks-nodejs/test/specs/node/cutlass/basic_spec.rb
simplified:
12 describe "Heroku's Nodejs CNB" do
13 it "handles a downgrade of node engine" do
14 Cutlass::App.new("simple-function").transaction do |app|
โฏ 15 set_node_version(app.tmpdir, version: "^16.0"
โฏ 18 app.pack_build do |pack_result|
โฏ 21 end
โฏ 23 set_node_version(app.tmpdir, version: "^14.0"
โฏ 25 app.pack_build do |pack_result|
โฏ 28 end
29 end
30 end
31 end
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ cat test/specs/node/cutlass/basic_spec.rb
# frozen_string_literal: true
require_relative "../spec_helper"
def set_node_version(dir, version: )
package_json = dir.join("package.json")
package_json_hash = JSON.parse(package_json.read)
package_json_hash["engines"]["node"] = version
package_json.write(package_json_hash.to_json)
end
describe "Heroku's Nodejs CNB" do
it "handles a downgrade of node engine" do
Cutlass::App.new("simple-function").transaction do |app|
set_node_version(app.tmpdir, version: "^16.0"
app.pack_build do |pack_result|
puts pack_result.stdout
expect(pack_result.stdout).to include("Installing Node.js function runtime")
end
set_node_version(app.tmpdir, version: "^14.0"
app.pack_build do |pack_result|
puts pack_result.stdout
expect(pack_result.stdout).to include("Installing Node.js function runtime")
end
end
end
end
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ cat .rspec
--require dead_end
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ gitx .
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ dead_end test/specs/node/cutlass/basic_spec.rb
DeadEnd: Unmatched `)` detected
file: /Users/rschneeman/Documents/projects/work/cnb/buildpacks-nodejs/test/specs/node/cutlass/basic_spec.rb
simplified:
12 describe "Heroku's Nodejs CNB" do
13 it "handles a downgrade of node engine" do
14 Cutlass::App.new("simple-function").transaction do |app|
โฏ 15 set_node_version(app.tmpdir, version: "^16.0"
โฏ 18 app.pack_build do |pack_result|
โฏ 21 end
โฏ 23 set_node_version(app.tmpdir, version: "^14.0"
โฏ 25 app.pack_build do |pack_result|
โฏ 28 end
29 end
30 end
31 end
โ 3.0.1 ๐ ~/Documents/projects/work/cnb/buildpacks-nodejs (schneems/test-version-downgrade)
$ git log
commit d31e9a371c5f37d57ce6fa463de7efd4b461c667 (HEAD -> schneems/test-version-downgrade)
Author: Richard Schneeman <rschneeman@salesforce.com>
Date: Wed Jun 9 13:57:14 2021 -0500
Basic spec and helper
schneems commented
Closing unless this comes up again, that format of private; attr_* <args>; public
is extremely uncommon. Especially now that ruby supports private attr_*
directly.