mod helpers;
use helpers::RepoFixture;
use rpo::RepoAnalyzer;
#[test]
fn linguist_generated_excluded_from_blame_by_default() {
let f = RepoFixture::new();
f.write(".gitattributes", "gen/** linguist-generated=true\n");
f.write("src/main.rs", "fn main() {}\n");
f.write("gen/out.pb.go", "// generated\n");
f.commit("A", "a@a.com", "initial");
let a = RepoAnalyzer::open(f.path()).unwrap().all().unwrap();
let fc = &a.file_changes;
let paths: Vec<&str> = fc
.column("path")
.unwrap()
.str()
.unwrap()
.iter()
.filter_map(|x| x)
.collect();
assert!(paths.contains(&"gen/out.pb.go"));
let is_gen: Vec<bool> = fc
.column("is_generated")
.unwrap()
.bool()
.unwrap()
.iter()
.filter_map(|x| x)
.collect();
assert!(is_gen.iter().any(|&x| x));
let blame = a.blame.unwrap();
let blame_paths: Vec<&str> = blame
.column("path")
.unwrap()
.str()
.unwrap()
.iter()
.filter_map(|x| x)
.collect();
assert!(!blame_paths.contains(&"gen/out.pb.go"));
assert!(blame_paths.contains(&"src/main.rs"));
}