File tree Expand file tree Collapse file tree
src/test/java/io/github/easy4j/codex/appserver Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -415,6 +415,30 @@ void shouldFallBackToTurnCompletedMessageWithoutItems() {
415415 assertEquals ("fallback text" , turn .future ().join ().getContent ());
416416 }
417417
418+ @ Test
419+ void shouldPreserveTurnCompletionStatus () {
420+ CodexAppServerTurn turn = newTurn (AppServerTurnRequest .builder ().prompt ("hi" ).build (),
421+ new ThreadMappingCache (10 ));
422+
423+ handshake (turn );
424+ turn .handleFrame ("{\" jsonrpc\" :\" 2.0\" ,\" id\" :2,\" result\" :{\" thread\" :{\" id\" :\" th_1\" }}}" );
425+ turn .handleFrame ("{\" method\" :\" turn/completed\" ,\" params\" :{\" turn\" :{\" status\" :\" completed\" }}}" );
426+
427+ assertEquals ("completed" , turn .future ().join ().getFinishReason ());
428+ }
429+
430+ @ Test
431+ void shouldUseCompletedFinishReasonWhenServerOmitsStatus () {
432+ CodexAppServerTurn turn = newTurn (AppServerTurnRequest .builder ().prompt ("hi" ).build (),
433+ new ThreadMappingCache (10 ));
434+
435+ handshake (turn );
436+ turn .handleFrame ("{\" jsonrpc\" :\" 2.0\" ,\" id\" :2,\" result\" :{\" thread\" :{\" id\" :\" th_1\" }}}" );
437+ turn .handleFrame ("{\" method\" :\" turn/completed\" ,\" params\" :{}}" );
438+
439+ assertEquals ("completed" , turn .future ().join ().getFinishReason ());
440+ }
441+
418442 @ Test
419443 void shouldRememberThreadMappingOnTurnCompleted () {
420444 ThreadMappingCache cache = new ThreadMappingCache (10 );
You can’t perform that action at this time.
0 commit comments