Add test files: integration, conversion, validation tests
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-01-29 15:16:35 +00:00
parent 64888aa9cc
commit ef066e1cd7

View 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"));
}