ic-testkit 0.57.0

PocketIC-oriented test utilities for IC canister tests
Documentation
// Each integration target uses only the fixtures it needs.
#![allow(dead_code)]

pub mod wait;

// These fixtures exchange small scalar/tuple replies, never fixture Wasm or logs.
pub const REPLY_LIMITS: ic_platform::candid::DecodeLimits = ic_platform::candid::DecodeLimits {
    reply_bytes: 65_536,
    decoding_quota: 1_000_000,
    skipping_quota: 100_000,
    type_entries: 1024,
    header_bytes: 8192,
};

pub fn startup_config() -> ic_testkit::pic::PocketIcStartupConfig {
    ic_testkit::pic::PocketIcStartupConfig::from_env(std::time::Duration::from_secs(30))
        .expect("prepare POCKET_IC_BIN or configure IC_TESTKIT_POCKET_IC_URL for live tests")
}

pub fn pocket_ic() -> ic_testkit::pic::PocketIcInstance<ic_testkit::pic::PocketIc> {
    startup_config()
        .build_instance(ic_testkit::pic::PocketIcBuilder::new().with_application_subnet())
        .expect("construct explicitly configured test instance")
}

pub fn unique_temp_directory(label: &str) -> ic_host_fs::owned_directory::OwnedDirectory {
    ic_host_fs::owned_directory::OwnedDirectory::new(
        ic_host_fs::directory::create_unique_directory(
            &std::env::temp_dir()
                .canonicalize()
                .expect("resolve test temporary root"),
            label,
            0o700,
            None,
        )
        .expect("create private test directory"),
    )
}