forked from ghe0/brain-to-surreal
refactor tests
modularised common code cleaned grpc_test file
This commit is contained in:
parent
351f0c5462
commit
34bd7617bc
2
tests/common/mod.rs
Normal file
2
tests/common/mod.rs
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pub mod prepare_test_env;
|
||||||
|
pub mod test_utils;
|
55
tests/common/prepare_test_env.rs
Normal file
55
tests/common/prepare_test_env.rs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
use super::test_utils::{get_pub_key, sign_request};
|
||||||
|
use detee_shared::{
|
||||||
|
general_proto::brain_general_cli_server::BrainGeneralCliServer,
|
||||||
|
vm_proto::brain_vm_cli_server::BrainVmCliServer,
|
||||||
|
};
|
||||||
|
use surreal_brain::grpc::{BrainGeneralCliMock, BrainVmCliMock};
|
||||||
|
use tokio::sync::OnceCell;
|
||||||
|
use tonic::transport::Channel;
|
||||||
|
|
||||||
|
pub const DB_URL: &str = "localhost:8000";
|
||||||
|
pub const DB_NS: &str = "test_brain";
|
||||||
|
pub const DB_NAME: &str = "test_migration_db";
|
||||||
|
|
||||||
|
pub const GRPC_ADDR: &str = "127.0.0.1:31337";
|
||||||
|
|
||||||
|
pub static TEST_STATE: OnceCell<Channel> = OnceCell::const_new();
|
||||||
|
|
||||||
|
pub async fn prepare_test_db() {
|
||||||
|
surreal_brain::db::init(DB_URL, DB_NS, DB_NAME)
|
||||||
|
.await
|
||||||
|
.expect("Failed to initialize the database");
|
||||||
|
|
||||||
|
let old_brain_data = surreal_brain::old_brain::BrainData::load_from_disk().unwrap();
|
||||||
|
// cleanup old brain data
|
||||||
|
surreal_brain::db::migration0(&old_brain_data).await.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn fake_grpc_server() {
|
||||||
|
tonic::transport::Server::builder()
|
||||||
|
.add_service(BrainGeneralCliServer::new(BrainGeneralCliMock {}))
|
||||||
|
.add_service(BrainVmCliServer::new(BrainVmCliMock {}))
|
||||||
|
.serve(GRPC_ADDR.parse().unwrap())
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn fake_grpc_client() -> Channel {
|
||||||
|
let url = format!("http://{GRPC_ADDR}");
|
||||||
|
Channel::from_shared(url).unwrap().connect().await.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn prepare_test_setup() {
|
||||||
|
TEST_STATE
|
||||||
|
.get_or_init(|| async {
|
||||||
|
prepare_test_db().await;
|
||||||
|
|
||||||
|
tokio::spawn(async {
|
||||||
|
fake_grpc_server().await;
|
||||||
|
});
|
||||||
|
|
||||||
|
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||||
|
fake_grpc_client().await
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
}
|
@ -1,64 +1,9 @@
|
|||||||
use detee_shared::{
|
use detee_shared::{
|
||||||
common_proto::Pubkey,
|
common_proto::Pubkey, general_proto::brain_general_cli_client::BrainGeneralCliClient,
|
||||||
general_proto::{
|
|
||||||
brain_general_cli_client::BrainGeneralCliClient,
|
|
||||||
brain_general_cli_server::BrainGeneralCliServer,
|
|
||||||
},
|
|
||||||
vm_proto::brain_vm_cli_server::BrainVmCliServer,
|
|
||||||
};
|
};
|
||||||
use surreal_brain::grpc::{BrainGeneralCliMock, BrainVmCliMock};
|
mod common;
|
||||||
use test_utils::{get_pub_key, sign_request};
|
use common::prepare_test_env::{prepare_test_setup, TEST_STATE};
|
||||||
use tokio::sync::OnceCell;
|
use common::test_utils::{get_pub_key, sign_request};
|
||||||
use tonic::transport::Channel;
|
|
||||||
|
|
||||||
mod test_utils;
|
|
||||||
|
|
||||||
const DB_URL: &str = "localhost:8000";
|
|
||||||
const DB_NS: &str = "test_brain";
|
|
||||||
const DB_NAME: &str = "test_migration_db";
|
|
||||||
|
|
||||||
const GRPC_ADDR: &str = "127.0.0.1:31337";
|
|
||||||
|
|
||||||
static TEST_STATE: OnceCell<Channel> = OnceCell::const_new();
|
|
||||||
|
|
||||||
async fn prepare_test_db() {
|
|
||||||
surreal_brain::db::init(DB_URL, DB_NS, DB_NAME)
|
|
||||||
.await
|
|
||||||
.expect("Failed to initialize the database");
|
|
||||||
|
|
||||||
let old_brain_data = surreal_brain::old_brain::BrainData::load_from_disk().unwrap();
|
|
||||||
// cleanup old brain data
|
|
||||||
surreal_brain::db::migration0(&old_brain_data).await.unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn fake_grpc_server() {
|
|
||||||
tonic::transport::Server::builder()
|
|
||||||
.add_service(BrainGeneralCliServer::new(BrainGeneralCliMock {}))
|
|
||||||
.add_service(BrainVmCliServer::new(BrainVmCliMock {}))
|
|
||||||
.serve(GRPC_ADDR.parse().unwrap())
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn fake_grpc_client() -> Channel {
|
|
||||||
let url = format!("http://{GRPC_ADDR}");
|
|
||||||
Channel::from_shared(url).unwrap().connect().await.unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn prepare_test_setup() {
|
|
||||||
TEST_STATE
|
|
||||||
.get_or_init(|| async {
|
|
||||||
prepare_test_db().await;
|
|
||||||
|
|
||||||
tokio::spawn(async {
|
|
||||||
fake_grpc_server().await;
|
|
||||||
});
|
|
||||||
|
|
||||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
|
||||||
fake_grpc_client().await
|
|
||||||
})
|
|
||||||
.await;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_general_balance() {
|
async fn test_general_balance() {
|
||||||
@ -75,6 +20,8 @@ async fn test_general_balance() {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.into_inner();
|
.into_inner();
|
||||||
|
|
||||||
|
// verify it in db also
|
||||||
|
|
||||||
assert_eq!(acc_bal.balance, 0);
|
assert_eq!(acc_bal.balance, 0);
|
||||||
assert_eq!(acc_bal.tmp_locked, 0);
|
assert_eq!(acc_bal.tmp_locked, 0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user