perimeterx-fastly-enforcer 2.2.2

PerimeterX Fastly Compute@Edge Rust Enforcer
Documentation
use crate::handlers::pxapi::*;
use crate::pxconfig::PXConfig;
use crate::pxcontext::{CookieVersion, PXContext};
use serde_json::json;

#[test]
fn risk_response_sets_additional_token_info() {
    let mut ctx = PXContext {
        cookie_version: Some(CookieVersion::V2),
        ..Default::default()
    };
    let conf = PXConfig::default();
    let risk_body = json!({
        "action": "c",
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "score": 0,
        "additional_token_info": "token-info",
    });

    assert!(!verify_risk_response(&mut ctx, &conf, &risk_body));
    assert_eq!(ctx.additional_token_info.as_deref(), Some("token-info"));
}

#[test]
fn risk_response_without_additional_token_info_preserves_existing_value() {
    let mut ctx = PXContext {
        additional_token_info: Some("cookie-token-info".to_string()),
        cookie_version: Some(CookieVersion::V3),
        ..Default::default()
    };
    let conf = PXConfig::default();
    let risk_body = json!({
        "action": "c",
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "score": 0,
    });

    assert!(!verify_risk_response(&mut ctx, &conf, &risk_body));
    assert_eq!(
        ctx.additional_token_info.as_deref(),
        Some("cookie-token-info")
    );
}