liminal-cli 0.3.4

The liminal command: serve the network, maintain its stores, or serve its discovery MCP over stdio
Documentation
//! ACCESS-010 R3: an open seat presents an empty credential on every
//! `Connect`, no placeholder and no Lys record; a token seat presents the Lys
//! record it always has.

use std::error::Error;

use super::Live;
use crate::config::Config;

const LIMITS: &str = "[limits]\nframe_bytes = 65536\nrecord_bytes = 1048576\nreply_timeout_ms = 1000\n\
flow_steps = 8\nrequest_bytes = 65536\n";

#[test]
fn an_open_seat_presents_no_credential_at_all() -> Result<(), Box<dyn Error>> {
    let directory = tempfile::tempdir()?;
    let seat = directory.path().join("seat.toml");
    std::fs::write(
        &seat,
        format!("server = \"127.0.0.1:7900\"\nchannel = \"console.topology\"\n{LIMITS}"),
    )?;
    let live = Live::new(&Config::load(&seat)?)?;
    assert_eq!(live.credential()?, Vec::<u8>::new());
    assert!(format!("{live:?}").contains("OpenCredential"));
    Ok(())
}

#[test]
fn a_token_seat_presents_the_lys_record_of_its_token() -> Result<(), Box<dyn Error>> {
    let directory = tempfile::tempdir()?;
    let token = directory.path().join("token");
    std::fs::write(&token, "issued-by-lys\n")?;
    let seat = directory.path().join("seat.toml");
    std::fs::write(
        &seat,
        format!(
            "server = \"127.0.0.1:7900\"\nchannel = \"console.topology\"\ntoken_file = \"token\"\n{LIMITS}"
        ),
    )?;
    let live = Live::new(&Config::load(&seat)?)?;
    assert_eq!(
        live.credential()?,
        liminal_sdk::lys_pass_credential("issued-by-lys")
    );
    Ok(())
}