From ec95a33d8cfc2ccbf59764d8cd00a779bdb63928 Mon Sep 17 00:00:00 2001 From: Chung Wei Leong <15154097+chungweileong94@users.noreply.github.com> Date: Wed, 12 Jun 2024 17:02:24 +0800 Subject: [PATCH] Added TSX test runnables (#12922) Fix #12884 Release Notes: - Added runnable tests for TSX files. --- Runnable tests can be customized via `tsx-test` tag --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> --- crates/languages/src/lib.rs | 3 ++- crates/languages/src/tsx/runnables.scm | 14 ++++++++++++++ crates/languages/src/typescript.rs | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 crates/languages/src/tsx/runnables.scm diff --git a/crates/languages/src/lib.rs b/crates/languages/src/lib.rs index f2860f24953270e33bfe9d1f30d5f2bc68ac41f7..9ca727f46e685ea348eb45323eee8898d3b0b7d5 100644 --- a/crates/languages/src/lib.rs +++ b/crates/languages/src/lib.rs @@ -141,7 +141,8 @@ pub fn init( vec![ Arc::new(typescript::TypeScriptLspAdapter::new(node_runtime.clone())), Arc::new(vtsls::VtslsLspAdapter::new(node_runtime.clone())) - ] + ], + typescript_task_context() ); language!( "typescript", diff --git a/crates/languages/src/tsx/runnables.scm b/crates/languages/src/tsx/runnables.scm new file mode 100644 index 0000000000000000000000000000000000000000..68c81d04c7833d5dff2f1b69dc9858dac906a936 --- /dev/null +++ b/crates/languages/src/tsx/runnables.scm @@ -0,0 +1,14 @@ +; Add support for (node:test, bun:test and Jest) runnable +; Function expression that has `it`, `test` or `describe` as the function name +( + (call_expression + function: (_) @_name + (#any-of? @_name "it" "test" "describe") + arguments: ( + arguments . (string + (string_fragment) @run + ) + ) + ) @_tsx-test + (#set! tag tsx-test) +) diff --git a/crates/languages/src/typescript.rs b/crates/languages/src/typescript.rs index 72ec30b03f359e6180d4749ae834a0db948ae435..e59bd5163803b457399d1a5bc7057385a9449304 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -37,7 +37,7 @@ pub(super) fn typescript_task_context() -> ContextProviderWithTasks { VariableName::Symbol.template_value(), VariableName::File.template_value(), ], - tags: vec!["ts-test".into(), "js-test".into()], + tags: vec!["ts-test".into(), "js-test".into(), "tsx-test".into()], ..TaskTemplate::default() }, TaskTemplate {