mirror of
https://github.com/actionbook/actionbook.git
synced 2026-09-19 03:28:06 +08:00
58545129de
- Delete packages/actionbook-rs/ (legacy 0.x CLI) - Delete old packages/cli/ (JS npm wrapper for 0.x) - Rename packages/cli-v2/ → packages/cli/ (git mv) - Merge npm wrapper files (bin/actionbook.js, scripts/postinstall.js) into new cli/ - Update package.json: name → @actionbookdev/cli, private → false, add npm distribution fields - Update sync-versions.js: point Cargo.toml/Cargo.lock sync at packages/cli/ - Update release.yml: build from packages/cli/ instead of packages/actionbook-rs/ - Update test.yml: paths and working-directory from cli-v2 → cli - Update CLAUDE.md, CONTRIBUTING.md, docs, issue templates - Delete stale changeset (fix-screenshot-timeout.md) - Keep 6 platform binary packages unchanged
50 lines
1.5 KiB
Rust
50 lines
1.5 KiB
Rust
use assert_cmd::Command;
|
|
|
|
#[test]
|
|
fn version_flag_prints_plain_version_string() {
|
|
let output = Command::cargo_bin("actionbook")
|
|
.expect("binary exists")
|
|
.args(["--version"])
|
|
.output()
|
|
.expect("run --version");
|
|
|
|
assert!(
|
|
output.status.success(),
|
|
"expected --version success\nstdout:\n{}\nstderr:\n{}",
|
|
String::from_utf8_lossy(&output.stdout),
|
|
String::from_utf8_lossy(&output.stderr),
|
|
);
|
|
|
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
|
assert_eq!(stdout.trim(), env!("CARGO_PKG_VERSION"));
|
|
assert!(
|
|
!stdout.contains("Usage:"),
|
|
"--version must not fall through to help output: {stdout}"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn version_flag_json_returns_version_envelope() {
|
|
let output = Command::cargo_bin("actionbook")
|
|
.expect("binary exists")
|
|
.args(["--json", "--version"])
|
|
.output()
|
|
.expect("run --json --version");
|
|
|
|
assert!(
|
|
output.status.success(),
|
|
"expected --json --version success\nstdout:\n{}\nstderr:\n{}",
|
|
String::from_utf8_lossy(&output.stdout),
|
|
String::from_utf8_lossy(&output.stderr),
|
|
);
|
|
|
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
|
let json: serde_json::Value = serde_json::from_str(&stdout).expect("valid json");
|
|
|
|
assert_eq!(json["ok"], true);
|
|
assert_eq!(json["command"], "version");
|
|
assert!(json["context"].is_null());
|
|
assert_eq!(json["data"], env!("CARGO_PKG_VERSION"));
|
|
assert!(json["error"].is_null());
|
|
}
|