influxdb/tests/end_to_end_cases/management_cli.rs

143 lines
3.2 KiB
Rust
Raw Normal View History

use assert_cmd::Command;
use predicates::prelude::*;
use crate::common::server_fixture::ServerFixture;
#[tokio::test]
pub async fn test() {
let server_fixture = ServerFixture::create_single_use().await;
let addr = server_fixture.grpc_base();
test_writer_id(addr).await;
test_create_database(addr).await;
test_remotes(addr).await;
}
async fn test_writer_id(addr: &str) {
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("writer")
.arg("set")
.arg("32")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("writer")
.arg("get")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("32"));
}
async fn test_create_database(addr: &str) {
let db = "management-cli-test";
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("database")
.arg("get")
.arg(db)
.arg("--host")
.arg(addr)
.assert()
.failure()
.stderr(predicate::str::contains("Database not found"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("database")
.arg("create")
.arg(db)
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("database")
.arg("get")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains(db));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("database")
.arg("get")
.arg(db)
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains(format!("name: \"{}\"", db)));
}
async fn test_remotes(addr: &str) {
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("set")
.arg("1")
.arg("http://1.2.3.4:1234")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("http://1.2.3.4:1234"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("remove")
.arg("1")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
}