Add test files: integration, conversion, validation tests
This commit is contained in:
86
tests/integration_tests.rs
Normal file
86
tests/integration_tests.rs
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
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"));
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user