From ee238c49de31a81d10eb109490c03dc96e75d805 Mon Sep 17 00:00:00 2001 From: Jason Song Date: Sun, 20 Sep 2026 18:03:02 +0800 Subject: [PATCH] test: cover user-token deletes for plain and encoded keys --- tests/openapi.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/openapi.rs b/tests/openapi.rs index 54923b4..ce78111 100644 --- a/tests/openapi.rs +++ b/tests/openapi.rs @@ -1369,6 +1369,46 @@ fn config_item_commands_use_encoded_items_for_path_sensitive_keys() { ); } +#[test] +fn user_token_config_delete_handles_plain_and_encoded_keys_without_operator() { + for (key, resource) in [ + ("timeout", "items/timeout"), + ("logging/level", "encodedItems/bG9nZ2luZy9sZXZlbA"), + ("logging\\level", "encodedItems/bG9nZ2luZ1xsZXZlbA"), + ] { + let server = TestServer::empty(); + let home = temp_home(); + write_config( + &home, + &profile_config_with_auth_mode(&server.url(), "user-token"), + ); + + let output = base_command(&home) + .env("APOLLO_TOKEN", "apollo_pat_test_token") + .args([ + "--yes", "--output", "json", "config", "delete", "--env", "DEV", "--app", "demo", + key, + ]) + .assert() + .success(); + let json: Value = serde_json::from_slice(&output.get_output().stdout).expect("delete JSON"); + assert_eq!(json["operation"]["operation"], "config.delete"); + assert_eq!(json["operation"]["key"], key); + + let request = server.request(); + assert_eq!(request.method, "DELETE"); + assert_eq!( + request.path, + format!( + "/openapi/v1/envs/DEV/apps/demo/clusters/default/namespaces/application/{resource}" + ) + ); + assert!(request.headers.iter().any(|header| { + header.eq_ignore_ascii_case("authorization: Bearer apollo_pat_test_token") + })); + } +} + #[test] fn config_set_falls_back_to_create_when_update_reports_missing_item() { let server = TestServer::sequence(vec![