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 . [
17 (string (string_fragment) @run)
18 (identifier) @run
19 ]
20 )
21 ) @_js-test
22
23 (#set! tag js-test)
24)
25
26; Add support for parameterized tests
27(
28 (call_expression
29 function: (call_expression
30 function: (member_expression
31 object: [(identifier) @_name (member_expression object: (identifier) @_name)]
32 property: (property_identifier) @_property
33 )
34 (#any-of? @_name "it" "test" "describe" "context" "suite")
35 (#any-of? @_property "each")
36 )
37 arguments: (
38 arguments . [
39 (string (string_fragment) @run)
40 (identifier) @run
41 ]
42 )
43 ) @_js-test
44
45 (#set! tag js-test)
46)