use snapbox::assert_eq_path;
use snapbox::cmd::{cargo_bin, Command};
use std::fs::{copy, read_to_string};
use std::path::Path;
#[test]
fn upgrade_packages() {
let temp_dir = tempfile::tempdir().unwrap();
let temp_path = temp_dir.path();
let source_path = Path::new("tests/upgrade/packages");
copy(source_path.join("knope.toml"), temp_path.join("knope.toml")).unwrap();
let assert = Command::new(cargo_bin!("knope"))
.arg("--upgrade")
.current_dir(temp_path)
.assert();
assert
.success()
.stdout_eq("Upgrading deprecated [[packages]] syntax to [package]\n");
assert_eq_path(
source_path.join("expected_knope.toml"),
read_to_string(temp_path.join("knope.toml")).unwrap(),
);
}
#[test]
fn upgrade_nothing() {
let temp_dir = tempfile::tempdir().unwrap();
let temp_path = temp_dir.path();
let source_path = Path::new("tests/upgrade/nothing");
copy(source_path.join("knope.toml"), temp_path.join("knope.toml")).unwrap();
let assert = Command::new(cargo_bin!("knope"))
.arg("--upgrade")
.current_dir(temp_path)
.assert();
assert.success().stdout_eq("Nothing to upgrade\n");
assert_eq_path(
source_path.join("expected_knope.toml"),
read_to_string(temp_path.join("knope.toml")).unwrap(),
);
}