#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic, missing_docs)]
mod common;
use common::CliWorkspace;
#[test]
fn append_then_get_matches() {
let ws = CliWorkspace::new();
assert!(ws.init().status.success());
let out = ws
.cmd()
.args([
"append",
"--partition",
"user=alex,year=2026,month=05,topic=meetings",
"--message",
"hello world",
])
.output()
.unwrap();
assert!(out.status.success(), "append failed: {out:?}");
let id = String::from_utf8(out.stdout).unwrap().trim().to_string();
assert!(!id.is_empty());
let out = ws.cmd().args(["get", &id]).output().unwrap();
assert!(out.status.success(), "get failed: {out:?}");
let body = String::from_utf8(out.stdout).unwrap();
assert!(body.contains("hello world"), "body was {body:?}");
}
#[test]
fn append_then_get_json_round_trip() {
let ws = CliWorkspace::new();
assert!(ws.init().status.success());
let out = ws
.cmd()
.args([
"--json",
"append",
"--partition",
"user=alex,year=2026,month=05,topic=meetings",
"--message",
"hi",
])
.output()
.unwrap();
assert!(out.status.success());
let parsed: serde_json::Value = serde_json::from_slice(&out.stdout).unwrap();
let id = parsed["id"].as_str().unwrap();
let out = ws.cmd().args(["--json", "get", id]).output().unwrap();
assert!(out.status.success());
let parsed: serde_json::Value = serde_json::from_slice(&out.stdout).unwrap();
assert_eq!(parsed["body"].as_str().unwrap(), "hi");
}
#[test]
fn get_unknown_id_exits_3() {
let ws = CliWorkspace::new();
assert!(ws.init().status.success());
let out = ws
.cmd()
.args(["get", "01ARZ3NDEKTSV4RRFFQ69G5FAV"])
.output()
.unwrap();
assert_eq!(out.status.code(), Some(3));
}