op_edit_comment_test.go

 1package bug
 2
 3import (
 4	"testing"
 5	"time"
 6
 7	"github.com/MichaelMure/git-bug/identity"
 8	"gotest.tools/assert"
 9)
10
11func TestEdit(t *testing.T) {
12	snapshot := Snapshot{}
13
14	var rene = identity.NewIdentity("René Descartes", "rene@descartes.fr")
15
16	unix := time.Now().Unix()
17
18	create := NewCreateOp(rene, unix, "title", "create", nil)
19	create.Apply(&snapshot)
20
21	hash1, err := create.Hash()
22	if err != nil {
23		t.Fatal(err)
24	}
25
26	comment := NewAddCommentOp(rene, unix, "comment", nil)
27	comment.Apply(&snapshot)
28
29	hash2, err := comment.Hash()
30	if err != nil {
31		t.Fatal(err)
32	}
33
34	edit := NewEditCommentOp(rene, unix, hash1, "create edited", nil)
35	edit.Apply(&snapshot)
36
37	assert.Equal(t, len(snapshot.Timeline), 2)
38	assert.Equal(t, len(snapshot.Timeline[0].(*CreateTimelineItem).History), 2)
39	assert.Equal(t, len(snapshot.Timeline[1].(*AddCommentTimelineItem).History), 1)
40	assert.Equal(t, snapshot.Comments[0].Message, "create edited")
41	assert.Equal(t, snapshot.Comments[1].Message, "comment")
42
43	edit2 := NewEditCommentOp(rene, unix, hash2, "comment edited", nil)
44	edit2.Apply(&snapshot)
45
46	assert.Equal(t, len(snapshot.Timeline), 2)
47	assert.Equal(t, len(snapshot.Timeline[0].(*CreateTimelineItem).History), 2)
48	assert.Equal(t, len(snapshot.Timeline[1].(*AddCommentTimelineItem).History), 2)
49	assert.Equal(t, snapshot.Comments[0].Message, "create edited")
50	assert.Equal(t, snapshot.Comments[1].Message, "comment edited")
51}