43 lines
1 KiB
Rust
43 lines
1 KiB
Rust
use std::net::{Ipv4Addr, SocketAddr};
|
|
|
|
use axum::extract::{ConnectInfo, State};
|
|
use nzr_api::{
|
|
config::{CloudConfig, Config},
|
|
mock::{self, client::NzrClientExt},
|
|
};
|
|
|
|
use crate::ctx;
|
|
|
|
#[tokio::test]
|
|
async fn get_metadata() {
|
|
tracing_subscriber::fmt().init();
|
|
let (mut client, _server) = mock::spawn_c2s().await;
|
|
|
|
let inst = client
|
|
.new_mock_instance("something")
|
|
.await
|
|
.unwrap()
|
|
.unwrap();
|
|
|
|
let cfg = Config {
|
|
cloud: CloudConfig {
|
|
listen_addr: "0.0.0.0".into(),
|
|
port: 80,
|
|
admin_user: "admin".to_owned(),
|
|
},
|
|
..Default::default()
|
|
};
|
|
let ctx = ctx::Context::new_mock(cfg, client);
|
|
let inst_sock: SocketAddr = (inst.lease.addr.addr, 54545).into();
|
|
|
|
let metadata = crate::get_meta_data(State(ctx.clone()), ConnectInfo(inst_sock))
|
|
.await
|
|
.unwrap();
|
|
|
|
assert_eq!(
|
|
metadata,
|
|
"instance_id: \"iid-something\"\nlocal_hostname: \"something\"\ndefault_username: \"admin\""
|
|
)
|
|
|
|
// TODO: Instance with SSH keys
|
|
}
|