Skip to content

Commit 69b197f

Browse files
committed
test(wash): Add tests for duration parsing
Signed-off-by: Junji Takakura <j.takakura@gmail.com>
1 parent c8d244b commit 69b197f

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

crates/wash/src/cli/cmd/up.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1280,6 +1280,8 @@ mod tests {
12801280
"SUALIKDKMIUAKRT5536EXKC3CX73TJD3CFXZMJSHIKSP3LTYIIUQGCUVGA",
12811281
"--rpc-timeout-ms",
12821282
"500",
1283+
"--max-execution-time",
1284+
"500ms",
12831285
"--rpc-tls",
12841286
"--structured-log-level",
12851287
"warn",

crates/wash/src/cli/util.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ const fn empty_table_style() -> TableStyle {
192192
}
193193

194194
mod test {
195+
use std::time::Duration;
196+
195197
#[test]
196198
fn test_safe_base64_parse_option() {
197199
let base64_option = "config_b64=eyJhZGRyZXNzIjogIjAuMC4wLjA6ODA4MCJ9Cg==".to_string();
@@ -203,4 +205,36 @@ mod test {
203205
let output = crate::lib::cli::input_vec_to_hashmap(vec![base64_option]).unwrap();
204206
assert_eq!(expected, output);
205207
}
208+
209+
#[test]
210+
fn test_parse_duration_fallback_ms() {
211+
// Test humantime format
212+
assert_eq!(
213+
crate::util::parse_duration_fallback_ms("5s").unwrap(),
214+
Duration::from_secs(5)
215+
);
216+
assert_eq!(
217+
crate::util::parse_duration_fallback_ms("100ms").unwrap(),
218+
Duration::from_millis(100)
219+
);
220+
assert_eq!(
221+
crate::util::parse_duration_fallback_ms("2m").unwrap(),
222+
Duration::from_secs(120)
223+
);
224+
225+
// Test milliseconds fallback
226+
assert_eq!(
227+
crate::util::parse_duration_fallback_ms("1000").unwrap(),
228+
Duration::from_millis(1000)
229+
);
230+
assert_eq!(
231+
crate::util::parse_duration_fallback_ms("500").unwrap(),
232+
Duration::from_millis(500)
233+
);
234+
235+
// Test error cases
236+
assert!(crate::util::parse_duration_fallback_ms("invalid").is_err());
237+
assert!(crate::util::parse_duration_fallback_ms("").is_err());
238+
assert!(crate::util::parse_duration_fallback_ms("abc123").is_err());
239+
}
206240
}

0 commit comments

Comments
 (0)