diff options
author | Michael Muré <batolettre@gmail.com> | 2019-04-14 14:12:44 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-04-14 14:12:44 +0200 |
commit | d862575d80a859dd4ce42fb10a6dbb49828544f1 (patch) | |
tree | 27e2409d7e17990df1ab5c1946d575b5b3692ead /bug/op_edit_comment_test.go | |
parent | 5eeeae7cdf24083277076041c4e8cdc6b4737fda (diff) | |
download | git-bug-d862575d80a859dd4ce42fb10a6dbb49828544f1.tar.gz |
bug: fix EditCommentOperation targeting the wrong comment
fix #126
Diffstat (limited to 'bug/op_edit_comment_test.go')
-rw-r--r-- | bug/op_edit_comment_test.go | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/bug/op_edit_comment_test.go b/bug/op_edit_comment_test.go index 72f8a168..ab0f2d21 100644 --- a/bug/op_edit_comment_test.go +++ b/bug/op_edit_comment_test.go @@ -5,9 +5,10 @@ import ( "testing" "time" - "github.com/MichaelMure/git-bug/identity" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/MichaelMure/git-bug/identity" ) func TestEdit(t *testing.T) { @@ -22,29 +23,54 @@ func TestEdit(t *testing.T) { hash1, err := create.Hash() require.NoError(t, err) - comment := NewAddCommentOp(rene, unix, "comment", nil) - comment.Apply(&snapshot) + comment1 := NewAddCommentOp(rene, unix, "comment 1", nil) + comment1.Apply(&snapshot) + + hash2, err := comment1.Hash() + require.NoError(t, err) + + // add another unrelated op in between + setTitle := NewSetTitleOp(rene, unix, "edited title", "title") + setTitle.Apply(&snapshot) - hash2, err := comment.Hash() + comment2 := NewAddCommentOp(rene, unix, "comment 2", nil) + comment2.Apply(&snapshot) + + hash3, err := comment2.Hash() require.NoError(t, err) edit := NewEditCommentOp(rene, unix, hash1, "create edited", nil) edit.Apply(&snapshot) - assert.Equal(t, len(snapshot.Timeline), 2) + assert.Equal(t, len(snapshot.Timeline), 4) assert.Equal(t, len(snapshot.Timeline[0].(*CreateTimelineItem).History), 2) assert.Equal(t, len(snapshot.Timeline[1].(*AddCommentTimelineItem).History), 1) + assert.Equal(t, len(snapshot.Timeline[3].(*AddCommentTimelineItem).History), 1) assert.Equal(t, snapshot.Comments[0].Message, "create edited") - assert.Equal(t, snapshot.Comments[1].Message, "comment") + assert.Equal(t, snapshot.Comments[1].Message, "comment 1") + assert.Equal(t, snapshot.Comments[2].Message, "comment 2") - edit2 := NewEditCommentOp(rene, unix, hash2, "comment edited", nil) + edit2 := NewEditCommentOp(rene, unix, hash2, "comment 1 edited", nil) edit2.Apply(&snapshot) - assert.Equal(t, len(snapshot.Timeline), 2) + assert.Equal(t, len(snapshot.Timeline), 4) + assert.Equal(t, len(snapshot.Timeline[0].(*CreateTimelineItem).History), 2) + assert.Equal(t, len(snapshot.Timeline[1].(*AddCommentTimelineItem).History), 2) + assert.Equal(t, len(snapshot.Timeline[3].(*AddCommentTimelineItem).History), 1) + assert.Equal(t, snapshot.Comments[0].Message, "create edited") + assert.Equal(t, snapshot.Comments[1].Message, "comment 1 edited") + assert.Equal(t, snapshot.Comments[2].Message, "comment 2") + + edit3 := NewEditCommentOp(rene, unix, hash3, "comment 2 edited", nil) + edit3.Apply(&snapshot) + + assert.Equal(t, len(snapshot.Timeline), 4) assert.Equal(t, len(snapshot.Timeline[0].(*CreateTimelineItem).History), 2) assert.Equal(t, len(snapshot.Timeline[1].(*AddCommentTimelineItem).History), 2) + assert.Equal(t, len(snapshot.Timeline[3].(*AddCommentTimelineItem).History), 2) assert.Equal(t, snapshot.Comments[0].Message, "create edited") - assert.Equal(t, snapshot.Comments[1].Message, "comment edited") + assert.Equal(t, snapshot.Comments[1].Message, "comment 1 edited") + assert.Equal(t, snapshot.Comments[2].Message, "comment 2 edited") } func TestEditCommentSerialize(t *testing.T) { |