ic-testkit 0.41.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;

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) -> tempfile::TempDir {
    let mut directory = tempfile::Builder::new();
    directory.prefix(label);
    #[cfg(unix)]
    {
        use std::os::unix::fs::PermissionsExt as _;
        directory.permissions(std::fs::Permissions::from_mode(0o700));
    }
    directory
        .tempdir_in(
            std::env::temp_dir()
                .canonicalize()
                .expect("resolve test temporary root"),
        )
        .expect("create private test directory")
}