test · Rust

Persistent Preview Worker

crates/vak-server/tests/persistent_preview_worker.rs
Raw
1.1 KB34 linesSnapshot ed4ab258
  1. 1#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)]
  2. 2
  3. 3use tokio::io::AsyncReadExt;
  4. 4
  5. 5#[tokio::test]
  6. 6async fn persistent_preview_crosses_the_versioned_worker_boundary() {
  7. 7 let root = tempfile::tempdir().expect("temporary preview root");
  8. 8 let args = vec![
  9. 9 "-c".to_string(),
  10. 10 "printf persistent-preview-%s \"$VAK_TEST_RUNTIME_HOME\"".to_string(),
  11. 11 ];
  12. 12 let environment = vec![("VAK_TEST_RUNTIME_HOME".to_string(), "isolated".to_string())];
  13. 13 let mut child = vak_tools::broker::spawn_persistent_worker(
  14. 14 std::path::Path::new(env!("CARGO_BIN_EXE_vak-tool-worker")),
  15. 15 root.path(),
  16. 16 "sh",
  17. 17 &args,
  18. 18 &environment,
  19. 19 None,
  20. 20 )
  21. 21 .await
  22. 22 .expect("persistent worker starts");
  23. 23 let mut stdout = child.stdout.take().expect("worker stdout");
  24. 24 let mut output = String::new();
  25. 25 stdout
  26. 26 .read_to_string(&mut output)
  27. 27 .await
  28. 28 .expect("read output");
  29. 29 let status = child.wait().await.expect("worker exits");
  30. 30
  31. 31 assert!(status.success());
  32. 32 assert_eq!(output, "persistent-preview-isolated");
  33. 33}
  34. 34