aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Li <deantvv@gmail.com>2021-02-22 05:13:53 +0000
committerDean Li <deantvv@gmail.com>2021-02-24 13:33:42 +0000
commitda97e91f2eb02ace7f3e6cb3522d4bd55aa45caf (patch)
treec64b279a6a394123785065ce1418d25364ec3559
parentMove the parsing header logic to args.rs (diff)
downloadminiserve-da97e91f2eb02ace7f3e6cb3522d4bd55aa45caf.tar.gz
miniserve-da97e91f2eb02ace7f3e6cb3522d4bd55aa45caf.zip
Add test for custom header
-rw-r--r--tests/header.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/header.rs b/tests/header.rs
new file mode 100644
index 0000000..a0734e5
--- /dev/null
+++ b/tests/header.rs
@@ -0,0 +1,33 @@
+mod fixtures;
+
+use assert_cmd::prelude::*;
+use assert_fs::fixture::TempDir;
+use fixtures::{port, tmpdir, Error};
+use rstest::rstest;
+use std::process::{Command, Stdio};
+use std::thread::sleep;
+use std::time::Duration;
+
+#[rstest]
+fn custom_header_set(tmpdir: TempDir, port: u16) -> Result<(), Error> {
+ let header_name = "x-info";
+ let header_value = "123";
+ let header_str = format!("{}: {}", header_name, header_value);
+
+ let _ = Command::cargo_bin("miniserve")?
+ .arg(tmpdir.path())
+ .arg("-p")
+ .arg(port.to_string())
+ .arg("--header")
+ .arg(header_str)
+ .stdout(Stdio::null())
+ .spawn()?;
+
+ sleep(Duration::from_secs(1));
+
+ let resp = reqwest::blocking::get(format!("http://localhost:{}", port).as_str())?;
+
+ assert_eq!(resp.headers().get(header_name).unwrap(), header_value);
+
+ Ok(())
+}