canic-host 0.100.93

Host-side App build, Fleet install, deployment, and release-set library for Canic workspaces
Documentation
use super::{decode_cycle_balance_response, uses_local_replica_transport};
use crate::test_support::temp_dir;
use candid::Encode;
use canic_core::dto::error::Error as CanicError;
use std::fs;

#[test]
fn decodes_cycle_balance_response_bytes() {
    let response: Result<u128, CanicError> = Ok(99_999_000_000_000);
    let bytes = Encode!(&response).expect("encode cycle balance response");

    assert_eq!(
        decode_cycle_balance_response(&bytes).expect("decode cycle balance"),
        99_999_000_000_000
    );
}

#[test]
fn named_environment_uses_its_resolved_network_class() {
    let root = temp_dir("canic-replica-query-network-class");
    fs::create_dir_all(&root).expect("create project root");
    fs::write(
        root.join("icp.yaml"),
        "networks:\n  - name: local\n    mode: managed\n\nenvironments:\n  - name: caelum-backend\n    network: local\n  - name: production\n    network: ic\n",
    )
    .expect("write icp config");

    assert!(
        uses_local_replica_transport(Some("caelum-backend"), Some(&root))
            .expect("resolve named local environment")
    );
    assert!(
        !uses_local_replica_transport(Some("production"), Some(&root))
            .expect("resolve named IC environment")
    );
    fs::remove_dir_all(root).expect("remove project root");
}

#[test]
fn explicit_http_target_uses_direct_replica_transport() {
    assert!(
        uses_local_replica_transport(Some("http://127.0.0.1:8000"), None)
            .expect("classify HTTP target")
    );
}