use super::*;
#[tokio::test]
async fn sidecar_never_leaves_the_resolved_files_directory() {
let root = tempfile::TempDir::new().unwrap();
let sub = root.path().join("assets");
fs::create_dir(&sub).unwrap();
let resolved = sub.join("app.js");
fs::write(&resolved, b"plain").unwrap();
fs::write(sub.join("app.js.br"), b"brotli-bytes").unwrap();
fs::write(sub.join("app.js.gz"), b"gzip-bytes").unwrap();
let (_, _, encoding) = select_precompressed_sidecar(&resolved, Some("br, gzip"))
.await
.expect("both sidecars present, br should be preferred");
assert_eq!(
encoding, "br",
"br must be preferred over gzip when both are accepted"
);
let (_, _, encoding) = select_precompressed_sidecar(&resolved, Some("gzip"))
.await
.expect("gzip sidecar present");
assert_eq!(encoding, "gzip");
assert!(
select_precompressed_sidecar(&resolved, None)
.await
.is_none(),
"no Accept-Encoding header should never select a sidecar"
);
}
#[test]
fn accepts_encoding_matches_only_listed_directives() {
assert!(!accepts_encoding(None, "br"));
assert!(!accepts_encoding(Some("identity"), "br"));
assert!(!accepts_encoding(Some("identity"), "gzip"));
assert!(accepts_encoding(Some("gzip, br"), "br"));
assert!(accepts_encoding(Some("gzip"), "gzip"));
assert!(!accepts_encoding(Some("gzip"), "br"));
}