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}