#![cfg(all(target_arch = "wasm32", feature = "workers"))]
use cachekit::session::session_headers;
use wasm_bindgen_test::wasm_bindgen_test;
#[wasm_bindgen_test]
fn session_headers_valid_on_wasm32() {
let headers = session_headers();
assert_eq!(headers[0].0, "X-CacheKit-Session-ID");
assert_eq!(headers[1].0, "X-CacheKit-Session-Start");
let id = uuid::Uuid::parse_str(headers[0].1).expect("session ID should be a valid UUID");
assert_eq!(id.get_version_num(), 4, "should be UUID v4");
let start: u64 = headers[1]
.1
.parse()
.expect("session start should be numeric");
assert!(
start > 1_704_067_200_000,
"start {start} should be after 2024"
);
assert!(
start < 4_102_444_800_000,
"start {start} should be before 2100"
);
}
#[wasm_bindgen_test]
async fn workers_backend_get_reaches_fetch_without_trapping() {
use cachekit::backend::workers::WorkersCachekitIO;
use cachekit::backend::Backend;
let backend = WorkersCachekitIO::builder()
.api_key("test-key-never-sent")
.api_url("https://cachekit-lab-1079.invalid")
.allow_custom_host(true)
.build()
.expect("builder should accept a syntactically valid https URL");
let result = backend.get("lab-1079-regression-key").await;
assert!(
result.is_err(),
".invalid must not resolve — expected a network error, got {result:?}"
);
}