canic-host 0.93.9

Host-side build, install, deployment, and fleet-template library for Canic workspaces
Documentation
use super::parse_canic_metadata_version_response;
use candid::{CandidType, Encode};
use canic_core::{cdk::utils::hash::hex_bytes, dto::metadata::CanicMetadataResponse};

#[test]
fn parses_metadata_version_from_typed_response_bytes() {
    let output = response_json(&CanicMetadataResponse {
        package_name: "example".to_string(),
        package_version: "1.2.3".to_string(),
        package_description: "example canister".to_string(),
        canic_version: "0.93.4".to_string(),
        canister_version: 7,
    });

    assert_eq!(
        parse_canic_metadata_version_response(&output).expect("decode metadata"),
        "0.93.4"
    );
}

fn response_json<T: CandidType>(response: &T) -> String {
    let bytes = Encode!(response).expect("encode response");
    serde_json::json!({ "response_bytes": hex_bytes(bytes) }).to_string()
}