diff options
author | Gaurav <allmanpride@gmail.com> | 2022-08-26 21:20:16 +0000 |
---|---|---|
committer | Gaurav <allmanpride@gmail.com> | 2022-08-26 21:20:16 +0000 |
commit | 8483826332d50e080092bd734512634ea14bee17 (patch) | |
tree | 331b970463f938557f46dcc3ac52c15fa87d191a | |
parent | Modify `--readme` tests for directories (diff) | |
download | miniserve-8483826332d50e080092bd734512634ea14bee17.tar.gz miniserve-8483826332d50e080092bd734512634ea14bee17.zip |
Use `TestServer` in `--readme` tests
-rw-r--r-- | tests/fixtures/mod.rs | 1 | ||||
-rw-r--r-- | tests/readme.rs | 50 |
2 files changed, 8 insertions, 43 deletions
diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs index ec17f3e..138bfcf 100644 --- a/tests/fixtures/mod.rs +++ b/tests/fixtures/mod.rs @@ -17,6 +17,7 @@ pub static FILES: &[&str] = &[ "test.txt", "test.html", "test.mkv", + "readme.md", #[cfg(not(windows))] "test \" \' & < >.csv", "😀.data", diff --git a/tests/readme.rs b/tests/readme.rs index 201f9af..0e90217 100644 --- a/tests/readme.rs +++ b/tests/readme.rs @@ -1,16 +1,9 @@ mod fixtures; -use assert_cmd::prelude::*; -use assert_fs::fixture::{FileWriteStr, TempDir}; -use assert_fs::prelude::PathChild; -use fixtures::{server, tmpdir, Error, TestServer, DIRECTORIES}; -use reqwest::Url; +use fixtures::{server, Error, TestServer, DIRECTORIES}; use rstest::rstest; use select::document::Document; use select::predicate::Attr; -use std::process::{Command, Stdio}; -use std::thread::sleep; -use std::time::Duration; #[rstest] /// Do not show readme contents by default @@ -26,21 +19,8 @@ fn no_readme_contents(server: TestServer) -> Result<(), Error> { #[rstest] /// Show readme contents when told to if there is readme.md file -fn show_readme_contents(tmpdir: TempDir) -> Result<(), Error> { - tmpdir - .child("readme.md") - .write_str("Readme Contents.") - .expect("Couldn't write to readme.md"); - let mut child = Command::cargo_bin("miniserve")? - .arg("--readme") - .arg("--port") - .arg("8090") - .arg(tmpdir.path()) - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); - let body = reqwest::blocking::get("http://localhost:8090")?.error_for_status()?; +fn show_readme_contents(#[with(&["--readme"])] server: TestServer) -> Result<(), Error> { + let body = reqwest::blocking::get(server.url())?.error_for_status()?; let parsed = Document::from_read(body)?; assert!(parsed.find(Attr("id", "readme")).next().is_some()); assert!(parsed.find(Attr("id", "readme-filename")).next().is_some()); @@ -60,35 +40,20 @@ fn show_readme_contents(tmpdir: TempDir) -> Result<(), Error> { .unwrap() .text() .trim() - == "Readme Contents." + == "Test Hello Yes" ); - child.kill()?; Ok(()) } #[rstest] /// Show readme contents when told to if there is readme.md file on directories. -fn show_readme_contents_directories(tmpdir: TempDir) -> Result<(), Error> { +fn show_readme_contents_directories(#[with(&["--readme"])] server: TestServer) -> Result<(), Error> { let directories = DIRECTORIES.to_vec(); - for directory in directories.iter() { - tmpdir - .child(format!("{}{}", directory, "readme.md")) - .write_str(&format!("Readme Contents for {}.", directory)) - .expect("Couldn't write to file"); - } - - let mut child = Command::cargo_bin("miniserve")? - .arg("--readme") - .arg(tmpdir.path()) - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); for directory in directories { let dir_body = - reqwest::blocking::get(Url::parse("http://localhost:8080")?.join(&directory)?)? + reqwest::blocking::get(server.url().join(&directory)?)? .error_for_status()?; let dir_body_parsed = Document::from_read(dir_body)?; assert!(dir_body_parsed.find(Attr("id", "readme")).next().is_some()); @@ -115,10 +80,9 @@ fn show_readme_contents_directories(tmpdir: TempDir) -> Result<(), Error> { .unwrap() .text() .trim() - == format!("Readme Contents for {}.", directory) + == &format!("This is {}readme.md", directory) ); } - child.kill()?; Ok(()) } |