beachcomber 0.5.1

A centralized daemon that caches shell state (git, battery, hostname, etc.) so every consumer reads from one fast cache instead of independently forking shells
Documentation
use beachcomber::provider::Provider;
use beachcomber::provider::op::OpProvider;

#[test]
fn op_provider_metadata() {
    let p = OpProvider;
    let meta = p.metadata();
    assert_eq!(meta.name, "op");
    assert!(meta.global);
    assert_eq!(meta.fields.len(), 2);
    let field_names: Vec<&str> = meta.fields.iter().map(|f| f.name.as_str()).collect();
    assert!(field_names.contains(&"signed_in"));
    assert!(field_names.contains(&"account"));
}

#[test]
fn op_provider_executes() {
    let p = OpProvider;
    let result = p.execute(None);
    assert!(
        result.is_some(),
        "op provider should always return a result"
    );
    let result = result.unwrap();
    let signed_in = result.get("signed_in");
    assert!(
        signed_in.is_some(),
        "result should contain 'signed_in' field"
    );
    let account = result.get("account");
    assert!(account.is_some(), "result should contain 'account' field");
}