87 lines
2.1 KiB
Rust
87 lines
2.1 KiB
Rust
use std::process::Command;
|
|
use assert_cmd::prelude::*;
|
|
use predicates::prelude::*;
|
|
|
|
#[test]
|
|
fn test_convert_json_to_yaml() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("convert")
|
|
.arg("-i")
|
|
.arg("test_data/sample.json")
|
|
.arg("-t")
|
|
.arg("yaml")
|
|
.arg("--no-color");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("name:"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_convert_yaml_to_json() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("convert")
|
|
.arg("-i")
|
|
.arg("test_data/sample.yaml")
|
|
.arg("-t")
|
|
.arg("json")
|
|
.arg("--no-color");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("\"name\""));
|
|
}
|
|
|
|
#[test]
|
|
fn test_validate_valid_config() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("validate")
|
|
.arg("-c")
|
|
.arg("test_data/sample.json")
|
|
.arg("-S")
|
|
.arg("test_data/schema.json")
|
|
.arg("--no-color");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("passed"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_infer_schema() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("infer")
|
|
.arg("-i")
|
|
.arg("test_data/sample.json")
|
|
.arg("--no-color");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("type"))
|
|
.stdout(predicate::str::contains("object"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_help() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("--help");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("config-forge"))
|
|
.stdout(predicate::str::contains("convert"))
|
|
.stdout(predicate::str::contains("validate"))
|
|
.stdout(predicate::str::contains("generate-ts"))
|
|
.stdout(predicate::str::contains("batch"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_version() {
|
|
let mut cmd = Command::cargo_bin("config-forge").unwrap();
|
|
cmd.arg("--version");
|
|
|
|
cmd.assert()
|
|
.success()
|
|
.stdout(predicate::str::contains("config-forge"));
|
|
}
|