diff options
author | Amine Hilaly <hilalyamine@gmail.com> | 2019-07-23 19:16:52 +0200 |
---|---|---|
committer | Amine Hilaly <hilalyamine@gmail.com> | 2019-07-23 19:49:53 +0200 |
commit | 29fdd37ce69b48aa9fc3c1b829ff67818041068f (patch) | |
tree | 598301ce5183f5029d58ad40d7dd309dc5799c87 /bridge/gitlab | |
parent | 0c8f1c3a58c4707284cc6368af26715520a220c0 (diff) | |
download | git-bug-29fdd37ce69b48aa9fc3c1b829ff67818041068f.tar.gz |
bridge/github: add getNewTitle tests
Diffstat (limited to 'bridge/gitlab')
-rw-r--r-- | bridge/gitlab/export_test.go | 1 | ||||
-rw-r--r-- | bridge/gitlab/import.go | 12 | ||||
-rw-r--r-- | bridge/gitlab/import_notes.go | 2 | ||||
-rw-r--r-- | bridge/gitlab/import_notes_test.go | 56 | ||||
-rw-r--r-- | bridge/gitlab/iterator.go | 1 |
5 files changed, 66 insertions, 6 deletions
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 |