51 lines
1.8 KiB
Rust
51 lines
1.8 KiB
Rust
use deepseek_protocol::{EventFrame, ThreadListParams, ThreadRequest, ThreadResumeParams};
|
|
|
|
#[test]
|
|
fn thread_resume_params_round_trip() {
|
|
let request = ThreadRequest::Resume(ThreadResumeParams {
|
|
thread_id: "thread-123".to_string(),
|
|
history: None,
|
|
path: None,
|
|
model: Some("deepseek-v4-pro".to_string()),
|
|
model_provider: Some("deepseek".to_string()),
|
|
cwd: None,
|
|
approval_policy: Some("on-request".to_string()),
|
|
sandbox: Some("workspace-write".to_string()),
|
|
config: None,
|
|
base_instructions: Some("base".to_string()),
|
|
developer_instructions: Some("dev".to_string()),
|
|
personality: Some("default".to_string()),
|
|
persist_extended_history: true,
|
|
});
|
|
|
|
let encoded = serde_json::to_string(&request).expect("serialize request");
|
|
let decoded: ThreadRequest = serde_json::from_str(&encoded).expect("deserialize request");
|
|
match decoded {
|
|
ThreadRequest::Resume(params) => {
|
|
assert_eq!(params.thread_id, "thread-123");
|
|
assert_eq!(params.model.as_deref(), Some("deepseek-v4-pro"));
|
|
assert!(params.persist_extended_history);
|
|
}
|
|
other => panic!("unexpected request: {other:?}"),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn thread_list_params_defaults_are_serializable() {
|
|
let request = ThreadRequest::List(ThreadListParams {
|
|
include_archived: false,
|
|
limit: Some(20),
|
|
});
|
|
let encoded = serde_json::to_string_pretty(&request).expect("serialize list request");
|
|
assert!(encoded.contains("include_archived"));
|
|
}
|
|
|
|
#[test]
|
|
fn event_frame_serialization_contains_expected_tag() {
|
|
let frame = EventFrame::TurnComplete {
|
|
turn_id: "turn-1".to_string(),
|
|
};
|
|
let encoded = serde_json::to_string(&frame).expect("serialize frame");
|
|
assert!(encoded.contains("turn_complete"));
|
|
}
|