From ce43f95b494e8e35b6c62a60438bb30254535def Mon Sep 17 00:00:00 2001 From: chuanmuzhj <2942809257@qq.com> Date: Sat, 22 Aug 2026 11:10:06 +0800 Subject: [PATCH] fix: var set truncates multi-word values --- src/parser.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/parser.rs b/src/parser.rs index 6c61b09..870d5c8 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -202,7 +202,7 @@ impl ParserState { match action.as_str() { "set" => { let name = self.next_string().ok_or(ParserError::MissingArgument)?; - let value = self.next_string().ok_or(ParserError::MissingArgument)?; + let value = self.collect(" ").ok_or(ParserError::MissingArgument)?; Ok(Command::Variable(VariableCommand::Set { name, value })) } @@ -445,6 +445,16 @@ mod tests { assert_eq!(value, "Bearer abc"); } + #[test] + fn variable_set_joins_multi_word_value() { + let command = parse("var set auth Bearer abc123").unwrap(); + let Command::Variable(VariableCommand::Set { name, value }) = command else { + panic!("expected variable set command"); + }; + assert_eq!(name, "auth"); + assert_eq!(value, "Bearer abc123"); + } + #[test] fn parses_req_save_response() { let command = parse("req save-response out.json").unwrap();