diff --git a/diff/diff_test.go b/diff/diff_test.go index 0f4ec9b..fc7c8a0 100644 --- a/diff/diff_test.go +++ b/diff/diff_test.go @@ -54,19 +54,10 @@ func TestParseHunksAndPrintHunks(t *testing.T) { filename string wantParseErr error }{ - { - filename: "sample_hunk.diff", - }, - { - filename: "sample_hunks.diff", - }, - { - filename: "sample_bad_hunks.diff", - wantParseErr: nil, - }, - { - filename: "sample_hunks_no_newline.diff", - }, + {filename: "sample_hunk.diff"}, + {filename: "sample_hunks.diff"}, + {filename: "sample_bad_hunks.diff"}, + {filename: "sample_hunks_no_newline.diff"}, {filename: "no_newline_both.diff"}, {filename: "no_newline_both2.diff"}, {filename: "no_newline_orig.diff"}, @@ -105,15 +96,9 @@ func TestParseFileDiffAndPrintFileDiff(t *testing.T) { filename string wantParseErr error }{ - { - filename: "sample_file.diff", - }, - { - filename: "sample_file_no_timestamp.diff", - }, - { - filename: "sample_file_extended.diff", - }, + {filename: "sample_file.diff"}, + {filename: "sample_file_no_timestamp.diff"}, + {filename: "sample_file_extended.diff"}, { filename: "empty.diff", wantParseErr: &ParseError{0, 0, ErrExtendedHeadersEOF}, @@ -145,20 +130,16 @@ func TestParseFileDiffAndPrintFileDiff(t *testing.T) { func TestParseMultiFileDiffAndPrintMultiFileDiff(t *testing.T) { tests := []struct { - filename string - wantParseErr error + filename string + wantParseErr error + wantFileDiffs int // How many instances of diff.FileDiff are expected. }{ - { - filename: "sample_multi_file.diff", - }, - { - filename: "sample_multi_file_single.diff", - }, - { - filename: "long_line_multi.diff", - }, - {filename: "empty.diff"}, - {filename: "empty_multi.diff"}, + {filename: "sample_multi_file.diff", wantFileDiffs: 2}, + {filename: "sample_multi_file_single.diff", wantFileDiffs: 1}, + {filename: "sample_multi_file_rename.diff", wantFileDiffs: 3}, + {filename: "long_line_multi.diff", wantFileDiffs: 3}, + {filename: "empty.diff", wantFileDiffs: 0}, + {filename: "empty_multi.diff", wantFileDiffs: 2}, } for _, test := range tests { diffData, err := ioutil.ReadFile(filepath.Join("testdata", test.filename)) @@ -174,6 +155,10 @@ func TestParseMultiFileDiffAndPrintMultiFileDiff(t *testing.T) { continue } + if got, want := len(diff), test.wantFileDiffs; got != want { + t.Errorf("%s: got %v instances of diff.FileDiff, expected %v", test.filename, got, want) + } + printed, err := PrintMultiFileDiff(diff) if err != nil { t.Errorf("%s: PrintMultiFileDiff: %s", test.filename, err) diff --git a/diff/print.go b/diff/print.go index 389be16..9cca4fa 100644 --- a/diff/print.go +++ b/diff/print.go @@ -36,11 +36,13 @@ func PrintFileDiff(d *FileDiff) ([]byte, error) { } } - if err := printFileHeader(&buf, "--- ", d.OrigName, timePtr(d.OrigTime)); err != nil { - return nil, err - } - if err := printFileHeader(&buf, "+++ ", d.NewName, timePtr(d.NewTime)); err != nil { - return nil, err + if d.OrigName != "" || d.OrigTime != nil || d.NewName != "" || d.NewTime != nil { + if err := printFileHeader(&buf, "--- ", d.OrigName, timePtr(d.OrigTime)); err != nil { + return nil, err + } + if err := printFileHeader(&buf, "+++ ", d.NewName, timePtr(d.NewTime)); err != nil { + return nil, err + } } ph, err := PrintHunks(d.Hunks) diff --git a/diff/testdata/sample_multi_file_rename.diff b/diff/testdata/sample_multi_file_rename.diff new file mode 100644 index 0000000..8387842 --- /dev/null +++ b/diff/testdata/sample_multi_file_rename.diff @@ -0,0 +1,27 @@ +diff --git a/README.md b/README.md +index 5f3d591..96a24fa 100644 +--- a/README.md ++++ b/README.md +@@ -24,6 +24,8 @@ and [view enterprise capabilities](https://www.example.com).* + + ## Installation + ++Minor change here. ++ + Follow the 5-minute + [installation instructions](https://www.example.com/.docs/getting-started/). For + more installation methods, check out the +diff --git a/docs/integrations/Email_Notifications.md b/docs/integrations/email-notifications.md +similarity index 100% +rename from docs/integrations/Email_Notifications.md +rename to docs/integrations/email-notifications.md +diff --git a/release_notes.md b/release_notes.md +index f2ff13f..f060cb5 100644 +--- a/release_notes.md ++++ b/release_notes.md +@@ -1,3 +1,5 @@ ++# new section ++ + # dev + + - Removed example pages and the `--auth.example-flag`