59 lines
1.8 KiB
Rust
59 lines
1.8 KiB
Rust
use common::{
|
|
prepare_test_env::{prepare_test_db, run_service_for_stream, run_service_in_background},
|
|
test_utils::Key,
|
|
vm_daemon_utils::{mock_vm_daemon, register_vm_node},
|
|
};
|
|
use detee_shared::vm_proto;
|
|
use detee_shared::vm_proto::brain_vm_cli_client::BrainVmCliClient;
|
|
use detee_shared::vm_proto::brain_vm_daemon_client::BrainVmDaemonClient;
|
|
|
|
mod common;
|
|
|
|
#[tokio::test]
|
|
async fn test_reg_vm_node() {
|
|
prepare_test_db().await;
|
|
|
|
let addr = run_service_in_background().await;
|
|
let client = BrainVmDaemonClient::connect(format!("http://{}", addr)).await.unwrap();
|
|
|
|
let operator_wallet = Key::new().pubkey;
|
|
|
|
let key = Key::new();
|
|
|
|
let vm_contracts = register_vm_node(client, key, operator_wallet).await;
|
|
|
|
assert!(vm_contracts.is_empty())
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_brain_message() {
|
|
env_logger::builder().filter_level(log::LevelFilter::Info).init();
|
|
let _ = prepare_test_db().await;
|
|
|
|
let brain_channel = run_service_for_stream().await;
|
|
let daemon_key = mock_vm_daemon(brain_channel.clone()).await;
|
|
let mut cli_client = BrainVmCliClient::new(brain_channel);
|
|
|
|
let cli_key = Key::new();
|
|
|
|
let req = vm_proto::NewVmReq {
|
|
admin_pubkey: cli_key.pubkey.clone(),
|
|
node_pubkey: daemon_key,
|
|
price_per_unit: 1200,
|
|
extra_ports: vec![8080, 8081],
|
|
locked_nano: 0,
|
|
..Default::default()
|
|
};
|
|
let new_vm_resp =
|
|
cli_client.new_vm(cli_key.sign_request(req).unwrap()).await.unwrap().into_inner();
|
|
|
|
assert!(new_vm_resp.error.is_empty());
|
|
assert!(new_vm_resp.uuid.len() == 40);
|
|
|
|
let id = ("measurement_args", new_vm_resp.uuid);
|
|
let data_in_db: detee_shared::vm_proto::MeasurementArgs =
|
|
surreal_brain::db::DB.select(id).await.unwrap().unwrap();
|
|
|
|
assert_eq!(data_in_db, new_vm_resp.args.unwrap());
|
|
}
|