v0.34.12
This commit is contained in:
1 parent
b3dfd570b5
commit
a4042d6439
16 files changed
+362
-55
No files matched your search
Vendored
+74
@@ -409,6 +409,80 @@ mod dashboard_tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rfc9211_method_bypass_and_stale_hit_do_not_misstate_freshness() {
|
||||
assert_eq!(cache_status_ttl(1, 2), -1);
|
||||
assert_eq!(cache_status_ttl(10, 10), 0);
|
||||
assert_eq!(cache_status_ttl(600, 5), 595);
|
||||
let settings = Settings {
|
||||
expose_status: true,
|
||||
expose_cache_status: true,
|
||||
..Settings::default()
|
||||
};
|
||||
let mut headers = HeaderMap::new();
|
||||
settings.annotate_reason(&mut headers, "BYPASS", 0, 0, "request_method");
|
||||
assert_eq!(
|
||||
headers["cache-status"],
|
||||
"RustProxy; fwd=method; detail=\"request_method\"",
|
||||
);
|
||||
let mut headers = HeaderMap::new();
|
||||
settings.annotate_reason_transformed_freshness(
|
||||
&mut headers, "HIT", 3, -7, "cache_max_stale", false,
|
||||
);
|
||||
assert_eq!(
|
||||
headers["cache-status"],
|
||||
"RustProxy; hit; ttl=-7; detail=\"cache_max_stale\"",
|
||||
);
|
||||
let mut headers = HeaderMap::new();
|
||||
settings.annotate_reason_transformed_freshness(
|
||||
&mut headers, "HIT", 3, -5, "cache_stale_while_revalidate", false,
|
||||
);
|
||||
assert_eq!(
|
||||
headers["cache-status"],
|
||||
"RustProxy; hit; ttl=-5; detail=\"cache_stale_while_revalidate\"",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rfc9211_forwarded_stale_error_and_forced_validation_report_real_hops() {
|
||||
let settings = Settings {
|
||||
expose_status: true,
|
||||
expose_cache_status: true,
|
||||
..Settings::default()
|
||||
};
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.append("cache-status", HeaderValue::from_static("OriginCache; hit"));
|
||||
settings.annotate_reason_transformed_forwarded(
|
||||
&mut headers, "HIT", 3, 0, "cache_stale_if_error", false,
|
||||
"stale", Some(StatusCode::SERVICE_UNAVAILABLE),
|
||||
);
|
||||
assert_eq!(headers["x-cache"], "HIT");
|
||||
let values: Vec<_> = headers.get_all("cache-status").iter()
|
||||
.map(|value| value.to_str().unwrap()).collect();
|
||||
assert_eq!(values, vec![
|
||||
"OriginCache; hit",
|
||||
"RustProxy; fwd=stale; fwd-status=503; detail=\"cache_stale_if_error\"",
|
||||
]);
|
||||
let mut headers = HeaderMap::new();
|
||||
settings.annotate_reason_transformed_forwarded(
|
||||
&mut headers, "HIT", 2, 42, "cache_revalidated", false,
|
||||
"request", Some(StatusCode::NOT_MODIFIED),
|
||||
);
|
||||
assert_eq!(
|
||||
headers["cache-status"],
|
||||
"RustProxy; fwd=request; fwd-status=304; detail=\"cache_revalidated\"",
|
||||
);
|
||||
let mut headers = HeaderMap::new();
|
||||
settings.annotate_reason_transformed_forwarded(
|
||||
&mut headers, "HIT", 2, 0, "cache_stale_if_error", false,
|
||||
"stale", None,
|
||||
);
|
||||
assert_eq!(
|
||||
headers["cache-status"],
|
||||
"RustProxy; fwd=stale; detail=\"cache_stale_if_error\"",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cache_domain_metrics_do_not_lock_hot_store_and_preserve_reasons() {
|
||||
let cache = Cache::new(7);
|
||||
|
||||
Reference in new issue
Block a user