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