From f92e12e1e902526f6103a9b3903bb50c6eb845a2 Mon Sep 17 00:00:00 2001 From: overtrue Date: Thu, 9 Apr 2026 14:05:29 +0800 Subject: [PATCH] test(cli): cover top-level cors set parsing --- crates/cli/src/commands/mod.rs | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/crates/cli/src/commands/mod.rs b/crates/cli/src/commands/mod.rs index 1c9532f..cc7116a 100644 --- a/crates/cli/src/commands/mod.rs +++ b/crates/cli/src/commands/mod.rs @@ -439,6 +439,46 @@ mod tests { } } + #[test] + fn cli_accepts_top_level_cors_set_with_positional_source() { + let cli = Cli::try_parse_from(["rc", "cors", "set", "local/my-bucket", "cors.xml"]) + .expect("parse top-level cors set with positional source"); + + match cli.command { + Commands::Cors(cors::CorsCommands::Set(arg)) => { + assert_eq!(arg.path, "local/my-bucket"); + assert_eq!(arg.source.as_deref(), Some("cors.xml")); + assert_eq!(arg.file, None); + assert!(!arg.force); + } + other => panic!("expected top-level cors set command, got {:?}", other), + } + } + + #[test] + fn cli_accepts_top_level_cors_set_with_legacy_file_flag() { + let cli = Cli::try_parse_from([ + "rc", + "cors", + "set", + "local/my-bucket", + "--file", + "cors.json", + "--force", + ]) + .expect("parse top-level cors set with --file"); + + match cli.command { + Commands::Cors(cors::CorsCommands::Set(arg)) => { + assert_eq!(arg.path, "local/my-bucket"); + assert_eq!(arg.source, None); + assert_eq!(arg.file.as_deref(), Some("cors.json")); + assert!(arg.force); + } + other => panic!("expected top-level cors set command, got {:?}", other), + } + } + #[test] fn cli_accepts_bucket_cors_get_alias() { let cli = Cli::try_parse_from(["rc", "bucket", "cors", "get", "local/my-bucket"])