test operator inspection extensive tests on airdrop refactor db module imports seperated vm tests into its module modularised report node into reusable method fix register vm_node creates operator account in db fix test brain message add ssh port on mock daemon while new vm improved error handling on tests unwraping only on top level method test utils methods accepts refs to remove clone() on top level methods
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 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.unwrap();
 | |
| 
 | |
|     let addr = run_service_in_background().await.unwrap();
 | |
|     let mut client = BrainVmDaemonClient::connect(format!("http://{}", addr)).await.unwrap();
 | |
| 
 | |
|     let vm_contracts =
 | |
|         register_vm_node(&mut client, &Key::new(), &Key::new().pubkey).await.unwrap();
 | |
| 
 | |
|     assert!(vm_contracts.is_empty())
 | |
| }
 | |
| 
 | |
| #[tokio::test]
 | |
| async fn test_brain_message() {
 | |
|     env_logger::builder().filter_level(log::LevelFilter::Error).init();
 | |
|     prepare_test_db().await.unwrap();
 | |
| 
 | |
|     let brain_channel = run_service_for_stream().await.unwrap();
 | |
|     let daemon_key = mock_vm_daemon(&brain_channel).await.unwrap();
 | |
|     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);
 | |
|     assert!(new_vm_resp.args.is_some());
 | |
|     assert!(new_vm_resp.args.unwrap().exposed_ports.len() == 3);
 | |
| }
 |