#[test]
fn worker_response_deserializes() {
#[derive(serde::Deserialize)]
struct WorkerResponse { total: u64 }
let json = r#"{"total": 2847561}"#;
let parsed: WorkerResponse = serde_json::from_str(json).unwrap();
assert_eq!(parsed.total, 2847561);
}
#[test]
fn increment_request_body_format() {
let amount: u64 = 4823;
let body = serde_json::json!({ "amount": amount });
assert_eq!(body["amount"], 4823);
}
#[test]
fn is_newer_version_stable_comparisons() {
assert!(tokensave::cloud::is_newer_version("2.3.0", "2.4.0"));
assert!(tokensave::cloud::is_newer_version("2.4.0", "3.0.0"));
assert!(!tokensave::cloud::is_newer_version("2.4.0", "2.4.0"));
assert!(!tokensave::cloud::is_newer_version("2.4.0", "2.3.0"));
}
#[test]
fn is_newer_version_beta_comparisons() {
assert!(!tokensave::cloud::is_newer_version("2.5.0-beta.1", "2.5.0"));
assert!(!tokensave::cloud::is_newer_version("2.5.0", "2.5.0-beta.1"));
assert!(!tokensave::cloud::is_newer_version("2.5.0-beta.1", "2.6.0"));
assert!(!tokensave::cloud::is_newer_version("2.6.0", "2.5.0-beta.1"));
assert!(tokensave::cloud::is_newer_version("2.5.0-beta.1", "2.5.0-beta.2"));
assert!(!tokensave::cloud::is_newer_version("2.5.0-beta.2", "2.5.0-beta.1"));
assert!(tokensave::cloud::is_newer_version("2.5.0-beta.1", "2.6.0-beta.1"));
}
#[test]
fn is_newer_minor_version_ignores_patch_bumps() {
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0", "3.2.1"));
assert!(!tokensave::cloud::is_newer_minor_version("3.2.1", "3.2.2"));
assert!(tokensave::cloud::is_newer_minor_version("3.2.1", "3.3.0"));
assert!(tokensave::cloud::is_newer_minor_version("3.2.0", "3.3.0"));
assert!(tokensave::cloud::is_newer_minor_version("3.2.1", "4.0.0"));
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0", "3.2.0"));
assert!(!tokensave::cloud::is_newer_minor_version("3.3.0", "3.2.1"));
}
#[test]
fn is_newer_minor_version_beta() {
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0-beta.1", "3.2.0"));
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0-beta.1", "3.3.0"));
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0", "3.3.0-beta.1"));
assert!(tokensave::cloud::is_newer_minor_version("3.2.0-beta.1", "3.3.0-beta.1"));
assert!(!tokensave::cloud::is_newer_minor_version("3.2.0-beta.1", "3.2.0-beta.2"));
}