Add the admin messages, approval ids as numbers, and two turn events
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
This commit is contained in:
@@ -54,12 +54,23 @@ fn tool_request() {
|
||||
#[test]
|
||||
fn tool_response_pending() {
|
||||
let body = ToolResponse::PendingApproval {
|
||||
approval: "ap-0001".to_string(),
|
||||
approval: 41,
|
||||
expires: Timestamp::parse("2026-09-17T08:35:00.000Z").unwrap(),
|
||||
};
|
||||
check("tool_response_pending.json", response(7, false, body));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn an_approval_id_is_a_number_not_a_string() {
|
||||
let good = fixture("tool_response_pending.json");
|
||||
let bad = good.replacen("\"approval\":41", "\"approval\":\"41\"", 1);
|
||||
assert_ne!(good, bad);
|
||||
assert!(serde_json::from_str::<Envelope>(&good).is_ok());
|
||||
assert!(serde_json::from_str::<Envelope>(&bad).is_err());
|
||||
let negative = good.replacen("\"approval\":41", "\"approval\":-1", 1);
|
||||
assert!(serde_json::from_str::<Envelope>(&negative).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn tool_response_result() {
|
||||
let body = ToolResponse::Result {
|
||||
@@ -113,6 +124,10 @@ fn deny_reasons_and_error_codes_are_snake_case() {
|
||||
(DenyReason::DeniedByGrant, "denied_by_grant"),
|
||||
(DenyReason::ApprovalRefused, "approval_refused"),
|
||||
(DenyReason::ApprovalExpired, "approval_expired"),
|
||||
(DenyReason::GrantsInvalid, "grants_invalid"),
|
||||
(DenyReason::AuditUnavailable, "audit_unavailable"),
|
||||
(DenyReason::InvalidArguments, "invalid_arguments"),
|
||||
(DenyReason::StateUnreadable, "state_unreadable"),
|
||||
];
|
||||
for (value, text) in reasons {
|
||||
assert_eq!(
|
||||
@@ -125,6 +140,8 @@ fn deny_reasons_and_error_codes_are_snake_case() {
|
||||
(ErrorCode::BadVersion, "bad_version"),
|
||||
(ErrorCode::BadMessage, "bad_message"),
|
||||
(ErrorCode::Internal, "internal"),
|
||||
(ErrorCode::Forbidden, "forbidden"),
|
||||
(ErrorCode::NoSuchApproval, "no_such_approval"),
|
||||
];
|
||||
for (value, text) in codes {
|
||||
assert_eq!(
|
||||
|
||||
Reference in New Issue
Block a user