From 29fdd37ce69b48aa9fc3c1b829ff67818041068f Mon Sep 17 00:00:00 2001 From: Amine Hilaly Date: Tue, 23 Jul 2019 19:16:52 +0200 Subject: bridge/github: add getNewTitle tests --- bridge/gitlab/export_test.go | 1 + bridge/gitlab/import.go | 12 ++++---- bridge/gitlab/import_notes.go | 2 ++ bridge/gitlab/import_notes_test.go | 56 ++++++++++++++++++++++++++++++++++++++ bridge/gitlab/iterator.go | 1 + 5 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 bridge/gitlab/export_test.go create mode 100644 bridge/gitlab/import_notes_test.go (limited to 'bridge') diff --git a/bridge/gitlab/export_test.go b/bridge/gitlab/export_test.go new file mode 100644 index 00000000..4d4b35af --- /dev/null +++ b/bridge/gitlab/export_test.go @@ -0,0 +1 @@ +package gitlab diff --git a/bridge/gitlab/import.go b/bridge/gitlab/import.go index 20c586a7..8f4ceec9 100644 --- a/bridge/gitlab/import.go +++ b/bridge/gitlab/import.go @@ -138,11 +138,6 @@ func (gi *gitlabImporter) ensureNote(repo *cache.RepoCache, b *cache.BugCache, n return err } - hash, errResolve := b.ResolveOperationWithMetadata(keyGitlabId, id) - if errResolve != cache.ErrNoMatchingOp { - return errResolve - } - noteType, body := GetNoteType(note) switch noteType { case NOTE_CLOSED: @@ -189,6 +184,10 @@ func (gi *gitlabImporter) ensureNote(repo *cache.RepoCache, b *cache.BugCache, n } case NOTE_COMMENT: + hash, errResolve := b.ResolveOperationWithMetadata(keyGitlabId, id) + if errResolve != cache.ErrNoMatchingOp { + return errResolve + } cleanText, err := text.Cleanup(body) if err != nil { @@ -226,7 +225,7 @@ func (gi *gitlabImporter) ensureNote(repo *cache.RepoCache, b *cache.BugCache, n _, err = b.EditCommentRaw( author, note.UpdatedAt.Unix(), - hash, + git.Hash(comment.Id()), cleanText, nil, ) @@ -327,6 +326,7 @@ func (gi *gitlabImporter) ensurePerson(repo *cache.RepoCache, id int) (*cache.Id user.Username, user.AvatarURL, map[string]string{ + // because Gitlab keyGitlabId: strconv.Itoa(id), keyGitlabLogin: user.Username, }, diff --git a/bridge/gitlab/import_notes.go b/bridge/gitlab/import_notes.go index 06c0a242..85da3158 100644 --- a/bridge/gitlab/import_notes.go +++ b/bridge/gitlab/import_notes.go @@ -30,6 +30,7 @@ const ( func GetNoteType(n *gitlab.Note) (NoteType, string) { // when a note is a comment system is set to false // when a note is a different event system is set to true + // because Gitlab if !n.System { return NOTE_COMMENT, n.Body } @@ -88,6 +89,7 @@ func GetNoteType(n *gitlab.Note) (NoteType, string) { // getNewTitle parses body diff given by gitlab api and return it final form // examples: "changed title from **fourth issue** to **fourth issue{+ changed+}**" // "changed title from **fourth issue{- changed-}** to **fourth issue**" +// because Gitlab func getNewTitle(diff string) string { newTitle := strings.Split(diff, "** to **")[1] newTitle = strings.Replace(newTitle, "{+", "", -1) diff --git a/bridge/gitlab/import_notes_test.go b/bridge/gitlab/import_notes_test.go new file mode 100644 index 00000000..c7b5ab56 --- /dev/null +++ b/bridge/gitlab/import_notes_test.go @@ -0,0 +1,56 @@ +package gitlab + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGetNewTitle(t *testing.T) { + type args struct { + diff string + } + type want struct { + title string + } + tests := []struct { + name string + args args + want want + }{ + { + name: "addition diff", + args: args{ + diff: "**first issue** to **first issue{+ edited+}**", + }, + want: want{ + title: "first issue edited", + }, + }, + { + name: "deletion diff", + args: args{ + diff: "**first issue{- edited-}** to **first issue**", + }, + want: want{ + title: "first issue", + }, + }, + { + name: "mixed diff", + args: args{ + diff: "**first {-issue-}** to **first {+bug+}**", + }, + want: want{ + title: "first bug", + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + title := getNewTitle(tt.args.diff) + assert.Equal(t, tt.want.title, title) + }) + } +} diff --git a/bridge/gitlab/iterator.go b/bridge/gitlab/iterator.go index 73f1614e..883fea9c 100644 --- a/bridge/gitlab/iterator.go +++ b/bridge/gitlab/iterator.go @@ -218,6 +218,7 @@ func (i *iterator) getNextLabelEvents() bool { return true } +// because Gitlab func (i *iterator) NextLabelEvent() bool { if i.err != nil { return false -- cgit