#![allow(clippy::expect_used)] use std::time::Duration; use vak_delivery::client::WorkerClient; use vak_delivery::{ AnswerDraft, DeliveryContent, DeliveryJob, DeliveryKind, DeliveryPosture, DeliveryProfile, Markup, }; fn job(id: &str, markdown: &str) -> DeliveryJob { DeliveryJob { job_id: id.into(), target: "telegram:test".into(), kind: DeliveryKind::Assistant, content: DeliveryContent::Answer(AnswerDraft::from_markdown(markdown)), profile: DeliveryProfile { surface: "telegram".into(), markup: Markup::TelegramHtml, max_chars: Some(4000), supports_tables: false, supports_code_blocks: true, supports_links: true, supports_actions: false, template: None, posture: DeliveryPosture::default(), }, skill_registry: None, } } #[tokio::test] async fn persistent_worker_renders_multiple_jobs() { let worker = WorkerClient::new( env!("CARGO_BIN_EXE_vak-delivery-worker"), Duration::from_secs(3), ); let first = worker .render(&job("worker-1", "# One\n\n**done**")) .await .expect("first render"); let second = worker .render(&job("worker-2", "# Two\n\n`ok`")) .await .expect("second render"); assert_eq!(first.job_id, "worker-1"); assert_eq!(second.job_id, "worker-2"); assert!(first.chunks[0].contains("done")); assert!(second.chunks[0].contains("ok")); }