From 68637d24c77939c5df94bbdb7aeed2e6df1044e6 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 28 Oct 2025 07:20:41 -0700 Subject: [PATCH] Don't throw on empty variable values https://feedback.yaak.app/p/variable-with-empty-value-in-request-will-cause-error --- src-tauri/yaak-models/src/render.rs | 2 +- src-tauri/yaak-templates/src/renderer.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src-tauri/yaak-models/src/render.rs b/src-tauri/yaak-models/src/render.rs index aa466aff..997f0061 100644 --- a/src-tauri/yaak-models/src/render.rs +++ b/src-tauri/yaak-models/src/render.rs @@ -17,7 +17,7 @@ fn add_variable_to_map( ) -> HashMap { let mut map = m.clone(); for variable in variables { - if !variable.enabled || variable.value.is_empty() { + if !variable.enabled { continue; } let name = variable.name.as_str(); diff --git a/src-tauri/yaak-templates/src/renderer.rs b/src-tauri/yaak-templates/src/renderer.rs index 9ed22aec..2613c4fc 100644 --- a/src-tauri/yaak-templates/src/renderer.rs +++ b/src-tauri/yaak-templates/src/renderer.rs @@ -259,6 +259,22 @@ mod parse_and_render_tests { Ok(()) } + #[tokio::test] + async fn render_empty_var() -> Result<()> { + let empty_cb = EmptyCB {}; + let template = "${[ foo ]}"; + let mut vars = HashMap::new(); + vars.insert("foo".to_string(), "".to_string()); + let opt = RenderOptions { + error_behavior: RenderErrorBehavior::Throw, + }; + assert_eq!( + parse_and_render(template, &vars, &empty_cb, &opt).await, + Ok("".to_string()) + ); + Ok(()) + } + #[tokio::test] async fn render_self_referencing_var() -> Result<()> { let empty_cb = EmptyCB {};