Files
config-forge/tests/integration_tests.rs
7000pctAUTO ef066e1cd7
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
Add test files: integration, conversion, validation tests
2026-01-29 15:16:35 +00:00

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