-
Notifications
You must be signed in to change notification settings - Fork 0
/
integration_tests.rs
31 lines (26 loc) · 980 Bytes
/
integration_tests.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use candid::{decode_one, encode_one, Principal};
use pocket_ic::{PocketIc, WasmResult};
use std::fs;
const BACKEND_WASM: &str = "../../target/wasm32-unknown-unknown/release/icp_hello_world_rust_backend.wasm";
fn setup() -> (PocketIc, Principal) {
let pic = PocketIc::new();
let backend_canister = pic.create_canister();
pic.add_cycles(backend_canister, 2_000_000_000_000); // 2T Cycles
let wasm = fs::read(BACKEND_WASM).expect("Wasm file not found, run 'dfx build'.");
pic.install_canister(backend_canister, wasm, vec![], None);
(pic, backend_canister)
}
#[test]
fn test_hello_world() {
let (pic, backend_canister) = setup();
let Ok(WasmResult::Reply(response)) = pic.query_call(
backend_canister,
Principal::anonymous(),
"greet",
encode_one("ICP").unwrap(),
) else {
panic!("Expected reply");
};
let result: String = decode_one(&response).unwrap();
assert_eq!(result, "Hello, ICP!");
}