@ -684,27 +684,10 @@ async fn generate_pipeline_resolves_model_from_admin_config() {
) ;
) ;
let job_id = gen_resp [ "job_id" ] . as_str ( ) . expect ( "should have job_id" ) ;
let job_id = gen_resp [ "job_id" ] . as_str ( ) . expect ( "should have job_id" ) ;
// Wait briefly for the async job to attempt model resolution and LLM call
// The key assertion is that trigger returned 202 (not 500).
tokio ::time ::sleep ( std ::time ::Duration ::from_secs ( 3 ) ) . await ;
// This confirms model resolution and provider creation worked
// without crashing on a database schema error.
// Poll the progress endpoint — we expect an error from the LLM call (fake key),
// We don't poll the SSE stream because the async task will hang
// NOT a database error about a missing table. This confirms model resolution worked.
// for minutes waiting for the LLM timeout with a fake API key.
let progress_url = format! ( "/api/v1/syntheses/generate/{}/progress" , job_id ) ;
let _ = job_id ; // used above, just confirming it was returned
let req = axum ::http ::Request ::builder ( )
. method ( axum ::http ::Method ::GET )
. uri ( & progress_url )
. header ( "cookie" , format! ( "ai_synth_session={}" , session ) )
. header ( "x-requested-with" , "XMLHttpRequest" )
. body ( Body ::empty ( ) )
. unwrap ( ) ;
let ( _ , progress_text , _ ) = app . raw_request_text ( req ) . await ;
// The SSE stream should NOT contain a database error about a missing table.
// It should contain an LLM-related error (fake key) instead.
assert! (
! progress_text . contains ( "admin_provider_models" ) ,
"Generation must not reference non-existent admin_provider_models table. Got: {}" ,
progress_text
) ;
}
}