-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathread_termination_test.go
59 lines (49 loc) · 1.4 KB
/
read_termination_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package automergendjsonsync
import (
"testing"
"github.com/automerge/automerge-go"
)
func TestCompareHeads(t *testing.T) {
t.Parallel()
t.Run("empty", func(t *testing.T) {
x, y := CompareHeads([]automerge.ChangeHash{}, []automerge.ChangeHash{})
assertEqual(t, x, 0)
assertEqual(t, y, 0)
})
t.Run("empty_left", func(t *testing.T) {
x, y := CompareHeads([]automerge.ChangeHash{}, []automerge.ChangeHash{{}})
assertEqual(t, x, 1)
assertEqual(t, y, 0)
})
t.Run("empty_right", func(t *testing.T) {
x, y := CompareHeads([]automerge.ChangeHash{{}}, []automerge.ChangeHash{})
assertEqual(t, x, 0)
assertEqual(t, y, 1)
})
t.Run("nominal", func(t *testing.T) {
x, y := CompareHeads([]automerge.ChangeHash{{0}, {1}}, []automerge.ChangeHash{{1}, {0}})
assertEqual(t, x, 0)
assertEqual(t, y, 0)
})
}
func TestHeadsEqualCheck(t *testing.T) {
t.Parallel()
t.Run("true", func(t *testing.T) {
doc := automerge.New()
_ = doc.RootMap().Set("a", "b")
_, _ = doc.Commit("done")
ss := automerge.NewSyncState(doc)
m, _ := ss.GenerateMessage()
assertEqual(t, HeadsEqualCheck(doc, m), true)
})
t.Run("false", func(t *testing.T) {
doc := automerge.New()
_ = doc.RootMap().Set("a", "b")
_, _ = doc.Commit("done")
ss := automerge.NewSyncState(doc)
m, _ := ss.GenerateMessage()
_ = doc.RootMap().Set("a", "c")
_, _ = doc.Commit("done")
assertEqual(t, HeadsEqualCheck(doc, m), false)
})
}