Skip to content

Commit bd7a3bc

Browse files
devm33Copilot
andcommitted
Add tests for display_prompt serialization in Session::send
Add two tests to session_test.rs: - send_serializes_display_prompt: asserts displayPrompt is included with the expected value when MessageOptions::with_display_prompt is used - send_omits_display_prompt_when_unset: asserts displayPrompt is omitted when not set Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent f95bbe6 commit bd7a3bc

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

rust/tests/session_test.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,48 @@ async fn send_omits_request_headers_when_unset_or_empty() {
496496
timeout(TIMEOUT, handle).await.unwrap().unwrap().unwrap();
497497
}
498498

499+
#[tokio::test]
500+
async fn send_serializes_display_prompt() {
501+
let (session, mut server) = create_session_pair().await;
502+
let session = Arc::new(session);
503+
504+
let handle = tokio::spawn({
505+
let session = session.clone();
506+
async move {
507+
session
508+
.send(MessageOptions::new("hi").with_display_prompt("Show this to user"))
509+
.await
510+
}
511+
});
512+
513+
let request = server.read_request().await;
514+
assert_eq!(request["method"], "session.send");
515+
assert_eq!(request["params"]["prompt"], "hi");
516+
assert_eq!(request["params"]["displayPrompt"], "Show this to user");
517+
518+
server.respond(&request, serde_json::json!({})).await;
519+
timeout(TIMEOUT, handle).await.unwrap().unwrap().unwrap();
520+
}
521+
522+
#[tokio::test]
523+
async fn send_omits_display_prompt_when_unset() {
524+
let (session, mut server) = create_session_pair().await;
525+
let session = Arc::new(session);
526+
527+
let handle = tokio::spawn({
528+
let session = session.clone();
529+
async move { session.send(MessageOptions::new("plain")).await }
530+
});
531+
let request = server.read_request().await;
532+
assert!(
533+
request["params"].get("displayPrompt").is_none(),
534+
"displayPrompt should be omitted when unset, got: {}",
535+
request["params"]
536+
);
537+
server.respond(&request, serde_json::json!({})).await;
538+
timeout(TIMEOUT, handle).await.unwrap().unwrap().unwrap();
539+
}
540+
499541
#[tokio::test]
500542
async fn session_rpc_methods_send_correct_method_names() {
501543
let (session, mut server) = create_session_pair().await;

0 commit comments

Comments
 (0)