aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.rs
diff options
context:
space:
mode:
authorkhai96_ <hvksmr1996@gmail.com>2019-04-28 18:07:02 +0000
committerkhai96_ <hvksmr1996@gmail.com>2019-04-28 18:07:02 +0000
commita07c1bdf4da77c8227c110e750fce7169618d75e (patch)
treee93702a231f343076cdc74afda1d954c257175c2 /tests/helpers.rs
parentMerge pull request #86 from KSXGitHub/test-hash-auth (diff)
downloadminiserve-a07c1bdf4da77c8227c110e750fce7169618d75e.tar.gz
miniserve-a07c1bdf4da77c8227c110e750fce7169618d75e.zip
Split integration test into multiple files
Diffstat (limited to '')
-rw-r--r--tests/helpers.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/helpers.rs b/tests/helpers.rs
new file mode 100644
index 0000000..3c5ad72
--- /dev/null
+++ b/tests/helpers.rs
@@ -0,0 +1,37 @@
+pub use assert_cmd::prelude::*;
+pub use assert_fs::fixture::TempDir;
+pub use assert_fs::prelude::*;
+pub use clap::{crate_name, crate_version};
+pub use port_check::free_local_port;
+pub use reqwest;
+pub use reqwest::multipart;
+pub use rstest::rstest;
+pub use select::document::Document;
+pub use select::predicate::{Attr, Text};
+pub use std::process::{Command, Stdio};
+pub use std::thread::sleep;
+pub use std::time::Duration;
+pub use rstest::rstest_parametrize;
+
+/// Error type used by tests
+pub type Error = Box<std::error::Error>;
+
+/// File names for testing purpose
+pub static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"];
+
+/// Test fixture which creates a temporary directory with a few files inside.
+pub fn tmpdir() -> TempDir {
+ let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests");
+ for &file in FILES {
+ tmpdir
+ .child(file)
+ .write_str("Test Hello Yes")
+ .expect("Couldn't write to file");
+ }
+ tmpdir
+}
+
+/// Get a free port.
+pub fn port() -> u16 {
+ free_local_port().expect("Couldn't find a free local port")
+}