use std::io::Write;
#[test]
fn test_cli_help() {
let mut cmd = assert_cmd::Command::cargo_bin("safe-migrate").unwrap();
cmd.arg("--help");
cmd.assert().success();
}
#[test]
fn test_cli_lint_nonexistent_file() {
let mut cmd = assert_cmd::Command::cargo_bin("safe-migrate").unwrap();
cmd.arg("lint").arg("--file").arg("nonexistent_file.sql");
cmd.assert().failure();
}
#[test]
fn test_cli_lint_invalid_cache() {
let mut sql_file = tempfile::NamedTempFile::new().unwrap();
writeln!(sql_file, "CREATE TABLE t (id int);").unwrap();
let mut corrupted_cache = tempfile::NamedTempFile::new().unwrap();
writeln!(corrupted_cache, "invalid json data").unwrap();
let mut cmd = assert_cmd::Command::cargo_bin("safe-migrate").unwrap();
cmd.arg("lint")
.arg("--file")
.arg(sql_file.path())
.arg("--cache")
.arg(corrupted_cache.path());
cmd.assert().failure();
}
#[test]
fn test_cli_sync_no_db_url() {
let mut cmd = assert_cmd::Command::cargo_bin("safe-migrate").unwrap();
cmd.arg("sync");
cmd.env_remove("DATABASE_URL");
cmd.assert().failure();
}