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 }