mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 16:06:08 +00:00
42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
use codex_proxy_rs::codex::{
|
|
types::CodexResponsesRequest,
|
|
websocket::{ensure_http_sse_supported, transport_for_request, CodexTransport},
|
|
};
|
|
|
|
#[test]
|
|
fn transport_for_request_should_allow_http_sse_without_websocket_only_fields() {
|
|
let request = base_request();
|
|
|
|
assert_eq!(transport_for_request(&request), CodexTransport::HttpSse);
|
|
assert!(ensure_http_sse_supported(&request).is_ok());
|
|
}
|
|
|
|
#[test]
|
|
fn transport_for_request_should_require_websocket_for_previous_response_id() {
|
|
let mut request = base_request();
|
|
request.previous_response_id = Some("resp_123".to_string());
|
|
|
|
assert_eq!(
|
|
transport_for_request(&request),
|
|
CodexTransport::WebSocketRequired
|
|
);
|
|
assert_eq!(
|
|
ensure_http_sse_supported(&request).unwrap_err().to_string(),
|
|
"previous_response_id requires Codex WebSocket transport"
|
|
);
|
|
}
|
|
|
|
fn base_request() -> CodexResponsesRequest {
|
|
CodexResponsesRequest {
|
|
model: "gpt-5.5".to_string(),
|
|
instructions: String::new(),
|
|
input: Vec::new(),
|
|
stream: true,
|
|
store: false,
|
|
reasoning: None,
|
|
tools: None,
|
|
previous_response_id: None,
|
|
use_websocket: false,
|
|
}
|
|
}
|