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