#![allow(deprecated)]
use assert_cmd::Command;
use predicates::prelude::*;
fn raps() -> Command {
Command::cargo_bin("raps").unwrap()
}
#[test]
fn test_bucket_help() {
raps()
.args(["bucket", "--help"])
.assert()
.success()
.stdout(predicate::str::contains("bucket"))
.stdout(predicate::str::contains("create"))
.stdout(predicate::str::contains("list"))
.stdout(predicate::str::contains("info"))
.stdout(predicate::str::contains("delete"));
}
#[test]
fn test_bucket_create_help() {
raps()
.args(["bucket", "create", "--help"])
.assert()
.success()
.stdout(predicate::str::contains("Create"))
.stdout(predicate::str::contains("--key"))
.stdout(predicate::str::contains("--policy"))
.stdout(predicate::str::contains("--region"));
}
#[test]
fn test_bucket_list_help() {
raps()
.args(["bucket", "list", "--help"])
.assert()
.success()
.stdout(predicate::str::contains("List"));
}
#[test]
fn test_bucket_info_help() {
raps()
.args(["bucket", "info", "--help"])
.assert()
.success()
.stdout(predicate::str::contains("bucket"))
.stdout(predicate::str::contains("BUCKET_KEY"));
}
#[test]
fn test_bucket_delete_help() {
raps()
.args(["bucket", "delete", "--help"])
.assert()
.success()
.stdout(predicate::str::contains("Delete"))
.stdout(predicate::str::contains("--yes"));
}
#[test]
fn test_bucket_info_requires_bucket_key() {
raps()
.args(["bucket", "info"])
.assert()
.failure()
.stderr(predicate::str::contains("BUCKET_KEY").or(predicate::str::contains("required")));
}
#[test]
fn test_bucket_create_invalid_policy() {
raps()
.args([
"bucket",
"create",
"--key",
"test",
"--policy",
"invalid-policy-xyz",
])
.assert()
.failure();
}
#[test]
fn test_bucket_create_invalid_region() {
raps()
.args([
"bucket",
"create",
"--key",
"test",
"--region",
"invalid-region-xyz",
])
.assert()
.failure();
}
#[test]
fn test_bucket_output_format_json_accepted() {
let result = raps()
.args(["bucket", "list", "--output", "json"])
.output()
.unwrap();
if result.status.success() {
let stdout = String::from_utf8_lossy(&result.stdout);
assert!(stdout.contains("[") || stdout.contains("{"));
}
}
#[test]
fn test_bucket_output_format_yaml_accepted() {
let result = raps()
.args(["bucket", "list", "--output", "yaml"])
.output()
.unwrap();
let stderr = String::from_utf8_lossy(&result.stderr);
assert!(!stderr.contains("error: invalid value 'yaml'"));
}
#[test]
fn test_bucket_output_format_table_accepted() {
let result = raps()
.args(["bucket", "list", "--output", "table"])
.output()
.unwrap();
let stderr = String::from_utf8_lossy(&result.stderr);
assert!(!stderr.contains("error: invalid value 'table'"));
}
#[test]
fn test_bucket_output_format_invalid() {
raps()
.args(["bucket", "list", "--output", "invalid-format"])
.assert()
.failure();
}