Fix ticket 052's clear-params test for ticket 055's reserved params

GET /api/params now includes the three non-deletable ottyl_* reserved
entries (ticket 055), so the "clear removes everything" assertion needs
to count only real (non-reserved) declarations.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XFUNZwCvz3kcod3352ZR2o
This commit is contained in:
Hugh Kaznowski
2026-09-06 09:49:02 +01:00
co-authored by Claude Sonnet 5
parent ec98a3ab18
commit 5493358db8
+18 -9
View File
@@ -1088,23 +1088,32 @@ mod tests {
ingest_lines(&engine, 0, &["request path=/a", "level=info x=1"]).await; ingest_lines(&engine, 0, &["request path=/a", "level=info x=1"]).await;
let (_, before) = get_json(&app, "/api/params").await; let (_, before) = get_json(&app, "/api/params").await;
let before_names: Vec<&str> = // Ticket 055 merges the three non-deletable `ottyl_*` reserved names into this listing
before.as_array().unwrap().iter().map(|p| p["name"].as_str().unwrap()).collect(); // too; `DELETE /api/params` (ticket 052) only ever clears real declarations, so the
assert!(before_names.contains(&"path")); // reserved ones must be excluded from the "everything got removed" count below.
assert!(before_names.contains(&"level")); let before_declared: Vec<&str> = before
assert!(before_names.contains(&"x")); .as_array()
.unwrap()
.iter()
.filter(|p| p["reserved"] != true)
.map(|p| p["name"].as_str().unwrap())
.collect();
assert!(before_declared.contains(&"path"));
assert!(before_declared.contains(&"level"));
assert!(before_declared.contains(&"x"));
let (status, result) = send_json(&app, "DELETE", "/api/params", json!({})).await; let (status, result) = send_json(&app, "DELETE", "/api/params", json!({})).await;
assert_eq!(status, StatusCode::OK); assert_eq!(status, StatusCode::OK);
assert_eq!(result["removed"], before_names.len() as u64); assert_eq!(result["removed"], before_declared.len() as u64);
// Re-derived without any new ingest — same three keys come back, now all auto-derived. // Re-derived without any new ingest — same three keys come back, now all auto-derived.
assert_eq!(result["reextracted"], 3); assert_eq!(result["reextracted"], 3);
assert_eq!(result["logs_considered"], 2); assert_eq!(result["logs_considered"], 2);
let (_, after) = get_json(&app, "/api/params").await; let (_, after) = get_json(&app, "/api/params").await;
let after_params = after.as_array().unwrap(); let after_declared: Vec<_> =
assert_eq!(after_params.len(), 3); after.as_array().unwrap().iter().filter(|p| p["reserved"] != true).collect();
assert!(after_params.iter().all(|p| p["auto_derived"] == true)); assert_eq!(after_declared.len(), 3);
assert!(after_declared.iter().all(|p| p["auto_derived"] == true));
// The clear persisted: "path" (the only manually-declared, profile-stored param) doesn't // The clear persisted: "path" (the only manually-declared, profile-stored param) doesn't
// reappear from settings.json on a fresh load. // reappear from settings.json on a fresh load.