mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
merge: integrate main into focus and blur PR
This commit is contained in:
@@ -6,6 +6,7 @@ use bsk::cli::daemon::{DaemonCmd, parse_duration};
|
||||
use bsk::cli::navigate::NavigateCmd;
|
||||
use bsk::cli::record::{RecordCmd, RecordSub};
|
||||
use bsk::cli::session::{SessionCmd, SessionSub};
|
||||
use bsk::cli::upload::UploadModeArg;
|
||||
use bsk::{Cli, Command};
|
||||
use clap::Parser;
|
||||
|
||||
@@ -13,6 +14,54 @@ fn parse(args: &[&str]) -> Cli {
|
||||
Cli::try_parse_from(args).expect("clap parse should succeed")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_upload_modes() {
|
||||
let cli = parse(&[
|
||||
"bsk",
|
||||
"upload",
|
||||
"@e1",
|
||||
"--file",
|
||||
"image.png",
|
||||
"--session",
|
||||
"s1",
|
||||
]);
|
||||
let Command::Upload(default_args) = cli.command else {
|
||||
panic!("expected upload subcommand");
|
||||
};
|
||||
assert_eq!(default_args.mode, UploadModeArg::Input);
|
||||
|
||||
let cli = parse(&[
|
||||
"bsk",
|
||||
"upload",
|
||||
"@e1",
|
||||
"--file",
|
||||
"image.png",
|
||||
"--session",
|
||||
"s1",
|
||||
"--mode",
|
||||
"drop",
|
||||
]);
|
||||
let Command::Upload(drop_args) = cli.command else {
|
||||
panic!("expected upload subcommand");
|
||||
};
|
||||
assert_eq!(drop_args.mode, UploadModeArg::Drop);
|
||||
|
||||
assert!(
|
||||
Cli::try_parse_from([
|
||||
"bsk",
|
||||
"upload",
|
||||
"@e1",
|
||||
"--file",
|
||||
"image.png",
|
||||
"--session",
|
||||
"s1",
|
||||
"--mode",
|
||||
"auto",
|
||||
])
|
||||
.is_err()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_daemon_start_with_defaults() {
|
||||
let cli = parse(&["bsk", "daemon", "start"]);
|
||||
@@ -231,6 +280,45 @@ fn rejects_zero_click_count() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_upload_with_repeated_files() {
|
||||
let cli = parse(&[
|
||||
"bsk",
|
||||
"upload",
|
||||
"@e3",
|
||||
"--file",
|
||||
"one.png",
|
||||
"--file",
|
||||
"two.png",
|
||||
"--session",
|
||||
"s1",
|
||||
]);
|
||||
let Command::Upload(args) = cli.command else {
|
||||
panic!("expected upload command");
|
||||
};
|
||||
assert_eq!(args.target.as_deref(), Some("@e3"));
|
||||
assert_eq!(args.files.len(), 2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_download_with_exact_output_policy() {
|
||||
let cli = parse(&[
|
||||
"bsk",
|
||||
"download",
|
||||
"#export",
|
||||
"--out",
|
||||
"result.zip",
|
||||
"--session",
|
||||
"s1",
|
||||
"--overwrite",
|
||||
]);
|
||||
let Command::Download(args) = cli.command else {
|
||||
panic!("expected download command");
|
||||
};
|
||||
assert_eq!(args.target.as_deref(), Some("#export"));
|
||||
assert!(args.overwrite);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_record_start_with_browser_and_url() {
|
||||
let cli = parse(&[
|
||||
|
||||
Reference in New Issue
Block a user