use httpmock::Method::*;
use serde_json::json;
use super::*;
#[rstest(tokio::test)]
async fn test_manager_start_wait_ready() {
let config_yml = "
---
trackedObjects:
apps/v1.Deployment:
podSpecTemplatePaths:
- /foo/bar
"
.to_string();
let config: TracerConfig = serde_yaml::from_str(&config_yml).unwrap();
let (mut fake_apiserver, client) = make_fake_apiserver();
fake_apiserver.handle(|when, then| {
when.path("/apis/apps/v1").method(GET);
then.json_body(apps_v1_discovery());
});
fake_apiserver.handle(|when, then| {
when.path("/apis/apps/v1/deployments").method(GET).query_param("limit", "500");
then.json_body(json!({
"kind": "List",
"apiVersion": "apps/v1",
"items": [],
"metadata": {"resourceVersion": "1"},
}));
});
fake_apiserver.handle(|when, then| {
when.path("/api/v1/pods").method(GET).query_param("limit", "500");
then.json_body(json!({
"kind": "List",
"apiVersion": "v1",
"items": [],
"metadata": {"resourceVersion": "1"},
}));
});
let mut manager = TraceManager::start(client, config).await.unwrap();
manager.wait_ready().await;
manager.shutdown().await;
fake_apiserver.assert();
}