test(cli): refresh stale deploy + logs journey assertions
Six journeys asserted against output formats that changed in earlier commits and had been failing regardless of branch: * `pic scripts deploy` prints a `name`/`version`/`action` KvBlock, not a prose "Created X vN" line. The name-override, version-bump, and the editor-can-deploy role check now parse the KvBlock fields (asserting the exact version + created/updated action) via a small `kv_field` helper. * `pic logs` gained a `source` column (now `created_at, source, status, summary`); the success/error-status and summary-truncation checks now index the status at col 2 and the summary at col 3. No production code touched — the deploys/logs always succeeded; only the assertions were stale. Full `--test cli --include-ignored` suite is now green (101 passed, 0 failed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ use predicates::prelude::*;
|
||||
use crate::common;
|
||||
|
||||
/// Pick out the data rows from `pic logs` TSV output — the header line
|
||||
/// (`created_at\tstatus\tsummary`) is now always present, so the old
|
||||
/// (`created_at\tsource\tstatus\tsummary`) is now always present, so the old
|
||||
/// "no non-empty lines means no logs" check needs to skip it.
|
||||
fn data_rows(stdout: &str) -> Vec<&str> {
|
||||
stdout
|
||||
@@ -63,10 +63,10 @@ fn logs_after_invoke_records_success_row() {
|
||||
let cols: Vec<&str> = rows[0].split('\t').map(str::trim).collect();
|
||||
assert_eq!(
|
||||
cols.len(),
|
||||
3,
|
||||
"row should be 3 tab-delimited cells: {rows:?}"
|
||||
4,
|
||||
"row should be 4 tab-delimited cells (created_at, source, status, summary): {rows:?}"
|
||||
);
|
||||
assert_eq!(cols[1], "success");
|
||||
assert_eq!(cols[2], "success");
|
||||
}
|
||||
|
||||
#[ignore = "needs DATABASE_URL pointing at a running Postgres"]
|
||||
@@ -95,7 +95,7 @@ fn logs_records_error_for_throwing_script() {
|
||||
.next()
|
||||
.expect("at least one data row");
|
||||
let cols: Vec<&str> = row.split('\t').map(str::trim).collect();
|
||||
assert_eq!(cols[1], "error", "expected error status, got row: {row}");
|
||||
assert_eq!(cols[2], "error", "expected error status, got row: {row}");
|
||||
}
|
||||
|
||||
#[ignore = "needs DATABASE_URL pointing at a running Postgres"]
|
||||
@@ -166,7 +166,7 @@ fn logs_truncates_long_summary() {
|
||||
.into_iter()
|
||||
.next()
|
||||
.expect("at least one data row");
|
||||
let summary = row.split('\t').nth(2).expect("summary column");
|
||||
let summary = row.split('\t').nth(3).expect("summary column");
|
||||
assert!(
|
||||
summary.ends_with('…'),
|
||||
"summary should be truncated with `…`, got: {summary}"
|
||||
|
||||
Reference in New Issue
Block a user