github.com/haya14busa/reviewdog@v0.0.0-20180723114510-ffb00ef78fd3/filter_test.go (about) 1 package reviewdog 2 3 import ( 4 "fmt" 5 "os" 6 "reflect" 7 "sort" 8 "strings" 9 "testing" 10 11 "github.com/google/go-cmp/cmp" 12 "github.com/haya14busa/reviewdog/diff" 13 ) 14 15 const diffContent = `--- sample.old.txt 2016-10-13 05:09:35.820791185 +0900 16 +++ sample.new.txt 2016-10-13 05:15:26.839245048 +0900 17 @@ -1,3 +1,4 @@ 18 unchanged, contextual line 19 -deleted line 20 +added line 21 +added line 22 unchanged, contextual line 23 --- nonewline.old.txt 2016-10-13 15:34:14.931778318 +0900 24 +++ nonewline.new.txt 2016-10-13 15:34:14.868444672 +0900 25 @@ -1,4 +1,4 @@ 26 " vim: nofixeol noendofline 27 No newline at end of both the old and new file 28 -a 29 -a 30 \ No newline at end of file 31 +b 32 +b 33 \ No newline at end of file 34 ` 35 36 func TestFilterCheck(t *testing.T) { 37 results := []*CheckResult{ 38 { 39 Path: "sample.new.txt", 40 Lnum: 1, 41 }, 42 { 43 Path: "sample.new.txt", 44 Lnum: 2, 45 }, 46 { 47 Path: "nonewline.new.txt", 48 Lnum: 1, 49 }, 50 { 51 Path: "nonewline.new.txt", 52 Lnum: 3, 53 }, 54 } 55 want := []*FilteredCheck{ 56 { 57 CheckResult: &CheckResult{ 58 Path: "sample.new.txt", 59 Lnum: 1, 60 }, 61 InDiff: false, 62 }, 63 { 64 CheckResult: &CheckResult{ 65 Path: "sample.new.txt", 66 Lnum: 2, 67 }, 68 InDiff: true, 69 LnumDiff: 3, 70 }, 71 { 72 CheckResult: &CheckResult{ 73 Path: "nonewline.new.txt", 74 Lnum: 1, 75 }, 76 InDiff: false, 77 }, 78 { 79 CheckResult: &CheckResult{ 80 Path: "nonewline.new.txt", 81 Lnum: 3, 82 }, 83 InDiff: true, 84 LnumDiff: 5, 85 }, 86 } 87 filediffs, _ := diff.ParseMultiFile(strings.NewReader(diffContent)) 88 got := FilterCheck(results, filediffs, 0, "") 89 if diff := cmp.Diff(got, want); diff != "" { 90 t.Error(diff) 91 } 92 } 93 94 func TestAddedDiffLines(t *testing.T) { 95 filediffs, _ := diff.ParseMultiFile(strings.NewReader(diffContent)) 96 wd, _ := os.Getwd() 97 wantlines := []string{ 98 "sample.new.txt:2:(difflnum:3) added line", 99 "sample.new.txt:3:(difflnum:4) added line", 100 "nonewline.new.txt:3:(difflnum:5) b", 101 "nonewline.new.txt:4:(difflnum:6) b", 102 } 103 var gotlines []string 104 for path, ltol := range addedDiffLines(filediffs, 0) { 105 for lnum, addedline := range ltol { 106 l := fmt.Sprintf("%v:%v:(difflnum:%v) %v", path[len(wd)+1:], lnum, addedline.LnumDiff, addedline.Content) 107 gotlines = append(gotlines, l) 108 } 109 } 110 sort.Strings(gotlines) 111 sort.Strings(wantlines) 112 if !reflect.DeepEqual(gotlines, wantlines) { 113 t.Errorf("got:\n%v\nwant:\n%v", gotlines, wantlines) 114 } 115 }