use assert_cmd::Command;
use tempfile::tempdir;
fn sdkt(dir: &std::path::Path) -> Command {
let mut cmd = Command::cargo_bin("sdkt").unwrap();
cmd.env("SDKT_IDENTITY_DIR", dir.join("identity"));
cmd
}
#[test]
fn test_cli_identity_lifecycle() {
let dir = tempdir().unwrap();
sdkt(dir.path())
.args(["identity", "generate", "alice"])
.assert()
.success()
.stdout(predicates::str::contains("generated successfully"));
sdkt(dir.path())
.args(["identity", "show", "alice"])
.assert()
.success()
.stdout(predicates::str::contains("Public Key: G"));
sdkt(dir.path())
.args(["identity", "list"])
.assert()
.success()
.stdout(predicates::str::contains("alice"));
sdkt(dir.path())
.args(["identity", "default", "alice"])
.assert()
.success()
.stdout(predicates::str::contains("set as default"));
sdkt(dir.path())
.args(["identity", "delete", "alice"])
.assert()
.success()
.stdout(predicates::str::contains("removed"));
}