mirror of https://github.com/Wilfred/difftastic/
101 lines
2.6 KiB
Rust
101 lines
2.6 KiB
Rust
use assert_cmd::prelude::*;
|
|
use predicates::prelude::*;
|
|
use std::process::Command;
|
|
|
|
#[test]
|
|
fn no_such_files() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("no_such_file").arg("no_such_file_either");
|
|
cmd.assert().failure().code(2);
|
|
}
|
|
|
|
#[test]
|
|
fn has_changes_default_exit_code() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("sample_files/simple_before.js")
|
|
.arg("sample_files/simple_after.js");
|
|
cmd.assert().success();
|
|
}
|
|
|
|
#[test]
|
|
fn has_changes_requested_exit_code() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("--exit-code")
|
|
.arg("sample_files/simple_before.js")
|
|
.arg("sample_files/simple_after.js");
|
|
cmd.assert().failure().code(1);
|
|
}
|
|
|
|
#[test]
|
|
fn check_only() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("--check-only")
|
|
.arg("sample_files/simple_before.js")
|
|
.arg("sample_files/simple_after.js");
|
|
|
|
let predicate_fn = predicate::str::contains("Has syntactic changes");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|
|
|
|
#[test]
|
|
fn check_only_text_file() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("--check-only")
|
|
.arg("sample_files/text_before.txt")
|
|
.arg("sample_files/text_after.txt");
|
|
|
|
let predicate_fn = predicate::str::contains("Has changes");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|
|
|
|
#[test]
|
|
fn makefile_text_as_atom() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("sample_files/cli_tests/makefile_before.mk")
|
|
.arg("sample_files/cli_tests/makefile_after.mk");
|
|
|
|
let predicate_fn = predicate::str::contains("CCFLAGS");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|
|
|
|
#[test]
|
|
fn yaml_parse_errors() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("sample_files/cli_tests/bad_yaml_before.yml")
|
|
.arg("sample_files/cli_tests/bad_yaml_after.yml");
|
|
|
|
let predicate_fn = predicate::str::contains("exceeded DFT_PARSE_ERROR_LIMIT");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|
|
|
|
#[test]
|
|
fn list_languages() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("--list-languages");
|
|
|
|
let predicate_fn = predicate::str::contains("TOML");
|
|
cmd.assert().stdout(predicate_fn);
|
|
|
|
let predicate_fn = predicate::str::contains("*.toml");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|
|
|
|
#[test]
|
|
fn test_mime_type_false_positive() {
|
|
let mut cmd = Command::cargo_bin("difft").unwrap();
|
|
|
|
cmd.arg("sample_files/cli_tests/x_mod_false_positive.js")
|
|
.arg("sample_files/cli_tests/empty.js");
|
|
|
|
let predicate_fn = predicate::str::contains("JavaScript");
|
|
cmd.assert().stdout(predicate_fn);
|
|
}
|