pipedash-plugin-api 0.14.0

Plugin API for Pipedash - CI/CD pipeline dashboard
Documentation
use super::*;

fn permission(name: &str, required: bool) -> Permission {
    Permission {
        name: name.to_string(),
        description: String::new(),
        required,
    }
}

#[test]
fn evaluate_requires_only_the_required_permissions() {
    let permissions = [permission("read", true), permission("write", false)];
    let status = PermissionStatus::evaluate(&permissions, "pat", |p| p.name == "read");
    assert!(status.all_granted);
    assert_eq!(status.metadata["token_type"], "pat");
    assert_eq!(
        status
            .permissions
            .iter()
            .map(|c| c.granted)
            .collect::<Vec<_>>(),
        [true, false]
    );

    let status = PermissionStatus::evaluate(&permissions, "pat", |p| p.name == "write");
    assert!(!status.all_granted);
}