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();