diff options
author | Sven-Hendrik Haase <svenstaro@gmail.com> | 2024-01-13 06:17:19 +0000 |
---|---|---|
committer | Sven-Hendrik Haase <svenstaro@gmail.com> | 2024-01-13 06:17:19 +0000 |
commit | 8062006313820534241ba1022782dcd78e72c555 (patch) | |
tree | 50f05e8b0ecd5f4bbfcb0e4315f50a34b65274be /tests/navigation.rs | |
parent | Tighter code formatting (diff) | |
download | miniserve-8062006313820534241ba1022782dcd78e72c555.tar.gz miniserve-8062006313820534241ba1022782dcd78e72c555.zip |
Make default sorting test more meaningful
Diffstat (limited to '')
-rw-r--r-- | tests/navigation.rs | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/tests/navigation.rs b/tests/navigation.rs index 734424a..8c21beb 100644 --- a/tests/navigation.rs +++ b/tests/navigation.rs @@ -1,7 +1,7 @@ mod fixtures; mod utils; -use fixtures::{server, Error, TestServer, DEEPLY_NESTED_FILE, DIRECTORIES, FILES}; +use fixtures::{server, Error, TestServer, DEEPLY_NESTED_FILE, DIRECTORIES}; use pretty_assertions::{assert_eq, assert_ne}; use rstest::rstest; use select::document::Document; @@ -150,23 +150,38 @@ fn can_navigate_using_breadcrumbs( } #[rstest] -#[case(server(&["--default-sorting-method", "date", "--default-sorting-order", "desc"]))] -#[case(server(&["--default-sorting-method", "date", "--default-sorting-order", "asc"]))] +#[case(server(&["--default-sorting-method", "name", "--default-sorting-order", "asc"]), "name", "asc")] +#[case(server(&["--default-sorting-method", "name", "--default-sorting-order", "desc"]), "name", "desc")] /// We can specify the default sorting order -fn can_specify_default_sorting_order(#[case] server: TestServer) -> Result<(), Error> { +fn can_specify_default_sorting_order( + #[case] server: TestServer, + #[case] method: String, + #[case] order: String, +) -> Result<(), Error> { let resp = reqwest::blocking::get(server.url())?; let body = resp.error_for_status()?; let parsed = Document::from_read(body)?; let links = get_link_hrefs_with_prefix(&parsed, "/"); - let first_created_file = FILES.first().unwrap(); - - if links.first().unwrap() == first_created_file { - assert_eq!("/very/?sort=date&order=asc", links.last().unwrap()); - } - - if links.last().unwrap() == first_created_file { - assert_eq!("/very/?sort=date&order=desc", links.first().unwrap()); + let dir_iter = server.path(); + let mut dir_entries = dir_iter + .read_dir() + .unwrap() + .map(|x| x.unwrap().file_name().into_string().unwrap()) + .map(|x| format!("/{x}")) + .collect::<Vec<_>>(); + dir_entries.sort(); + + if method == "name" && order == "asc" { + assert_eq!( + *dir_entries.last().unwrap(), + *percent_encoding::percent_decode_str(links.first().unwrap()).decode_utf8_lossy() + ); + } else if method == "name" && order == "desc" { + assert_eq!( + *dir_entries.first().unwrap(), + *percent_encoding::percent_decode_str(links.first().unwrap()).decode_utf8_lossy() + ); } Ok(()) |