diff --git a/crates/languages/src/tsx/outline.scm b/crates/languages/src/tsx/outline.scm index c0c5c735e2..df6ffa5aec 100644 --- a/crates/languages/src/tsx/outline.scm +++ b/crates/languages/src/tsx/outline.scm @@ -83,7 +83,30 @@ ] @context (#any-of? @_name "it" "test" "describe" "context" "suite") arguments: ( - arguments . (string (string_fragment) @name) + arguments . [ + (string (string_fragment) @name) + (identifier) @name + ] + ) + ) +) @item + +; Add support for parameterized tests +( + (call_expression + function: (call_expression + function: (member_expression + object: [(identifier) @_name (member_expression object: (identifier) @_name)] + property: (property_identifier) @_property + ) + (#any-of? @_name "it" "test" "describe" "context" "suite") + (#any-of? @_property "each") + ) + arguments: ( + arguments . [ + (string (string_fragment) @name) + (identifier) @name + ] ) ) ) @item diff --git a/crates/languages/src/tsx/runnables.scm b/crates/languages/src/tsx/runnables.scm index 1b68b9a41e..85702cf99d 100644 --- a/crates/languages/src/tsx/runnables.scm +++ b/crates/languages/src/tsx/runnables.scm @@ -13,7 +13,32 @@ ] (#any-of? @_name "it" "test" "describe" "context" "suite") arguments: ( - arguments . (string (string_fragment) @run) + arguments . [ + (string (string_fragment) @run) + (identifier) @run + ] + ) + ) @_js-test + + (#set! tag js-test) +) + +; Add support for parameterized tests +( + (call_expression + function: (call_expression + function: (member_expression + object: [(identifier) @_name (member_expression object: (identifier) @_name)] + property: (property_identifier) @_property + ) + (#any-of? @_name "it" "test" "describe" "context" "suite") + (#any-of? @_property "each") + ) + arguments: ( + arguments . [ + (string (string_fragment) @run) + (identifier) @run + ] ) ) @_js-test