58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use common::prepare_test_env::{
 | |
|     prepare_test_db, run_service_for_stream, run_service_in_background,
 | |
| };
 | |
| use common::test_utils::Key;
 | |
| use common::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 db = 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 = db.select(id).await.unwrap().unwrap();
 | |
| 
 | |
|     assert_eq!(data_in_db, new_vm_resp.args.unwrap());
 | |
| }
 |