acme-proxy 0.2.0

An ACME (RFC 8555) server that issues from a local CA, relays to an upstream CA, or delegates to a script
Documentation
use crate::common::Lab;

#[tokio::test]
#[ignore]
async fn test_admin_cli_order() {
    let lab = Lab::new(vec![]).await;

    let certbot_script = format!(
        r#"
        set -e
        mkdir -p /tmp/webroot
        certbot register \
            --agree-tos --email admin-cli-test@example.com \
            --server {0} \
            --config-dir /tmp/certbot/config --work-dir /tmp/certbot/work --logs-dir /tmp/certbot/logs \
            --non-interactive
        certbot certonly \
            --domains admincli.example.com \
            --server {0} \
            --config-dir /tmp/certbot/config --work-dir /tmp/certbot/work --logs-dir /tmp/certbot/logs \
            --non-interactive \
            --webroot --webroot-path /tmp/webroot
    "#,
        lab.proxy_url
    );

    lab.exec_in(&lab.certbot, &certbot_script).await;

    let (success, out, _) = lab
        .exec_in_with_output(&lab.proxy, "acme-proxy account list --json")
        .await;
    assert!(success, "Failed to list accounts");
    assert!(
        out.contains("admin-cli-test@example.com"),
        "account list did not show the registered contact"
    );

    let (success, out, _) = lab
        .exec_in_with_output(&lab.proxy, "acme-proxy order list --json")
        .await;
    assert!(success, "Failed to list orders");
    assert!(
        out.contains("admincli.example.com"),
        "order list did not show the ordered identifier"
    );
    assert!(
        out.contains(r#""status":"valid""#),
        "order status is not valid"
    );
}