@@ -532,7 +532,43 @@ describe('runCloudPi', () => {
532532 return Promise . resolve ( { stdout : '__BASE_SHA__=abc' , stderr : '' , exitCode : 0 } )
533533 }
534534 if ( command . includes ( 'pi -p' ) ) {
535- options . onStdout ?.( '{"type":"error","error":"model exploded"}\n' )
535+ options . onStdout ?.(
536+ `${ [
537+ JSON . stringify ( {
538+ type : 'message_end' ,
539+ message : {
540+ role : 'assistant' ,
541+ content : [ { type : 'text' , text : '' } ] ,
542+ usage : { input : 0 , output : 0 , totalTokens : 0 } ,
543+ stopReason : 'error' ,
544+ errorMessage : 'model rejected sk-byok' ,
545+ } ,
546+ } ) ,
547+ JSON . stringify ( {
548+ type : 'turn_end' ,
549+ message : {
550+ role : 'assistant' ,
551+ usage : { input : 0 , output : 0 , totalTokens : 0 } ,
552+ stopReason : 'error' ,
553+ errorMessage : 'model rejected sk-byok' ,
554+ } ,
555+ toolResults : [ ] ,
556+ } ) ,
557+ JSON . stringify ( {
558+ type : 'agent_end' ,
559+ willRetry : false ,
560+ messages : [
561+ {
562+ role : 'assistant' ,
563+ content : [ { type : 'text' , text : '' } ] ,
564+ usage : { input : 0 , output : 0 , totalTokens : 0 } ,
565+ stopReason : 'error' ,
566+ errorMessage : 'model rejected sk-byok' ,
567+ } ,
568+ ] ,
569+ } ) ,
570+ ] . join ( '\n' ) } \n`
571+ )
536572 return Promise . resolve ( { stdout : '' , stderr : '' , exitCode : 0 } )
537573 }
538574 return Promise . resolve ( {
@@ -543,9 +579,11 @@ describe('runCloudPi', () => {
543579 }
544580 )
545581
546- await expect ( runCloudPi ( baseParams ( ) , { onEvent : vi . fn ( ) } ) ) . rejects . toThrow ( / m o d e l e x p l o d e d / )
582+ await expect ( runCloudPi ( baseParams ( ) , { onEvent : vi . fn ( ) } ) ) . rejects . toThrow (
583+ 'model rejected ***'
584+ )
585+ expect ( mockRun ) . toHaveBeenCalledTimes ( 2 )
547586 expect ( mockExecuteTool ) . not . toHaveBeenCalled ( )
548- expect ( mockRun . mock . calls . some ( ( [ cmd ] : [ string ] ) => cmd . includes ( 'push' ) ) ) . toBe ( false )
549587 } )
550588
551589 it ( 'fails (no PR) when finalize reports neither no-changes nor a push' , async ( ) => {
0 commit comments