test: align signed native fixtures with current Ticket input contracts
This commit is contained in:
@@ -1997,10 +1997,10 @@ async fn native_wip_ticket_create_uses_same_signed_authorization_before_real_bac
|
|||||||
.as_array()
|
.as_array()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.iter()
|
.iter()
|
||||||
.find(|interface| interface["reference"]["name"] == "yoi.ticket/collection/v1")
|
.find(|interface| interface["reference"]["name"] == "yoi.ticket/collection/v2")
|
||||||
.expect("native Ticket collection interface")["reference"]
|
.expect("native Ticket collection interface")["reference"]
|
||||||
.clone();
|
.clone();
|
||||||
let args = json!({"path":"/tickets","interface":reference,"operation":"create","arguments":{"title":"Native authorized Ticket"}}).to_string();
|
let args = json!({"path":"/tickets","interface":reference,"operation":"create","arguments":{"content":{"title":"Native authorized Ticket"}}}).to_string();
|
||||||
assert!(
|
assert!(
|
||||||
invoke
|
invoke
|
||||||
.execute(&args, ToolExecutionContext::direct())
|
.execute(&args, ToolExecutionContext::direct())
|
||||||
|
|||||||
@@ -196,6 +196,26 @@ impl TicketSurface {
|
|||||||
let reference_field = if name == "ShowTicket" { "id" } else { "ticket" };
|
let reference_field = if name == "ShowTicket" { "id" } else { "ticket" };
|
||||||
let path = format!("/tickets/{}", input[reference_field].as_str().unwrap());
|
let path = format!("/tickets/{}", input[reference_field].as_str().unwrap());
|
||||||
input.as_object_mut().unwrap().remove(reference_field);
|
input.as_object_mut().unwrap().remove(reference_field);
|
||||||
|
match name {
|
||||||
|
"ShowTicket" => {
|
||||||
|
let mut page = serde_json::Map::new();
|
||||||
|
for (legacy, native) in [("event_limit", "limit"), ("event_cursor", "cursor")] {
|
||||||
|
if let Some(value) = input.as_object_mut().unwrap().remove(legacy) {
|
||||||
|
page.insert(native.into(), value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !page.is_empty() {
|
||||||
|
input["page"] = page.into();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"TicketAssignmentAnswer" => {
|
||||||
|
let fields = input.as_object_mut().unwrap();
|
||||||
|
let assignment_id = fields.remove("assignment_id").unwrap();
|
||||||
|
let expected_last_event_id = fields.remove("expected_last_event_id").unwrap();
|
||||||
|
input["observed"] = serde_json::json!({"assignment_id":assignment_id,"expected_last_event_id":expected_last_event_id});
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
// Observe the real item representation before invoking a mutation. Tracking
|
// Observe the real item representation before invoking a mutation. Tracking
|
||||||
// reads alone do not establish the Ticket WIP object validator. Explicit
|
// reads alone do not establish the Ticket WIP object validator. Explicit
|
||||||
// refresh also reconciles stale observations after an unknown result;
|
// refresh also reconciles stale observations after an unknown result;
|
||||||
|
|||||||
Reference in New Issue
Block a user