| 522 | |
| 523 | #[tokio::test] |
| 524 | async fn log_emits_a_log_event() { |
| 525 | let wf = Workflow::builder(Arc::new(EchoExecutor::new())).build(); |
| 526 | let mut rx = wf.subscribe(); |
| 527 | wf.log("info", "hello", serde_json::json!({ "k": 1 })); |
| 528 | let ev = rx.recv().await.unwrap(); |
| 529 | assert_eq!( |
| 530 | ev, |
| 531 | WorkflowEvent::Log { |
| 532 | level: "info".to_string(), |
| 533 | message: "hello".to_string(), |
| 534 | fields: serde_json::json!({ "k": 1 }), |
| 535 | } |
| 536 | ); |
| 537 | } |
| 538 | |
| 539 | #[tokio::test] |
| 540 | async fn phase_emits_budget_exhausted_when_capped() { |