Skip to content

Commit

Permalink
ruby: Remove outline for running tests (#12642)
Browse files Browse the repository at this point in the history
Hi, this pull request superseeds the
#12624
and removes queries for runnables from `outline.scm`. This pull request
has couple things to mention:

- Removed task for running tests with `minitest` as I think it's not
reliable in its state because, AFAIK, the only way to run `minitest`
with the specific line, i.e. `bundle exec rake test
spec/models/some_model.rb:12` is to use it with Rails. The support for
`minitest` is still there and users can add their own task, for
instance, when they use `minitest` in Rails to get support for running
tests:

  ```json
  {
    "label": "test $ZED_RELATIVE_FILE:$ZED_ROW",
    "command": "./bin/rails",
    "args": ["test", "\"$ZED_RELATIVE_FILE:$ZED_ROW\""],
    "tags": ["minitest-test"]
  }
  ```

**Question:** Perhaps that should be mentioned in the Ruby extension
documentation?

- Adjusted runnables queries to work without `ZED_SYMBOL`.

Release Notes:

- N/A
  • Loading branch information
vitallium authored Jun 10, 2024
1 parent 05b6581 commit a600799
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 35 deletions.
6 changes: 0 additions & 6 deletions extensions/ruby/languages/ruby/outline.scm
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,3 @@
(module
"module" @context
name: (_) @name) @item

; Minitest/RSpec
(call
method: (identifier) @run (#any-of? @run "describe" "context" "test")
arguments: (argument_list . (_) @name)
) @item
32 changes: 11 additions & 21 deletions extensions/ruby/languages/ruby/runnables.scm
Original file line number Diff line number Diff line change
Expand Up @@ -10,61 +10,51 @@
(constant) @run
(scope_resolution scope: (constant) name: (constant) @run)
]
(superclass (scope_resolution) @superclass (#match? @superclass "(::IntegrationTest|::TestCase|::SystemTestCase)$"))
) @minitest-test
(superclass (scope_resolution) @superclass (#match? @superclass "(::IntegrationTest|::TestCase|::SystemTestCase|Minitest::Test)$"))
) @_minitest-test
(#set! tag minitest-test)
)

(
(call
method: (identifier) @run (#eq? @run "test")
arguments: (argument_list (string (string_content) @name))
) @minitest-test
arguments: (argument_list (string (string_content) @_name))
) @_minitest-test
(#set! tag minitest-test)
)

; Methods that begin with test_
(
(method
name: (identifier) @run (#match? @run "^test_")
) @minitest-test
) @_minitest-test
(#set! tag minitest-test)
)

; System tests that inherit from ApplicationSystemTestCase
(
(class
name: (constant) @run (superclass) @superclass (#match? @superclass "(ApplicationSystemTestCase)$")
) @minitest-test
) @_minitest-test
(#set! tag minitest-test)
)

; RSpec

; Example groups with literals
(
(call
method: (identifier) @run (#any-of? @run "describe" "context")
arguments: (argument_list . (_) @name)
) @rspec-test
(#set! tag rspec-test)
)

; Examples
(
(call
method: (identifier) @run (#any-of? @run "it" "its" "specify")
arguments: (argument_list (string (string_content) @name))
) @rspec-test
method: (identifier) @run (#any-of? @run "describe" "context" "it" "its" "specify")
arguments: (argument_list . (_) @_name)
) @_rspec-test
(#set! tag rspec-test)
)

; Examples (one-liner syntax)
(
(call
method: (identifier) @run (#any-of? @run "it" "its" "specify")
block: (_) @name
block: (_) @_name
!arguments
) @rspec-test
) @_rspec-test
(#set! tag rspec-test)
)
10 changes: 2 additions & 8 deletions extensions/ruby/languages/ruby/tasks.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
[
{
"label": "test $ZED_SYMBOL",
"command": "ruby",
"args": ["-Itest", "$ZED_FILE", "--name", "\"/$ZED_SYMBOL/\""],
"tags": ["minitest-test"]
},
{
"label": "rspec $ZED_SYMBOL",
"label": "rspec $ZED_RELATIVE_FILE:$ZED_ROW",
"command": "./bin/rspec",
"args": ["\"$ZED_FILE:$ZED_ROW\""],
"args": ["\"$ZED_RELATIVE_FILE:$ZED_ROW\""],
"tags": ["rspec-test"]
}
]

0 comments on commit a600799

Please sign in to comment.