1; Add support for (node:test, bun:test and Jest) runnable
2; Function expression that has `it`, `test` or `describe` as the function name
3(
4 (call_expression
5 function: [
6 (identifier) @_name
7 (member_expression
8 object: [
9 (identifier) @_name
10 (member_expression object: (identifier) @_name)
11 ]
12 )
13 ]
14 (#any-of? @_name "it" "test" "describe" "context" "suite")
15 arguments: (
16 arguments . (string (string_fragment) @run)
17 )
18 ) @_js-test
19
20 (#set! tag js-test)
21)
22
23; Add support for parameterized tests
24(
25 (call_expression
26 function: (call_expression
27 function: (member_expression
28 object: [(identifier) @_name (member_expression object: (identifier) @_name)]
29 property: (property_identifier) @_property
30 )
31 (#any-of? @_name "it" "test" "describe" "context" "suite")
32 (#any-of? @_property "each")
33 )
34 arguments: (
35 arguments . (string (string_fragment) @run)
36 )
37 ) @_js-test
38
39 (#set! tag js-test)
40)