]> git.giacomolli.uk - onechat/blob - queue_test.go
Check the socket path before the daemon writes
[onechat] / queue_test.go
1 package main
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7 )
8
9 func TestQueueStartsInMessageOrder(t *testing.T) {
10 queue := newQueue()
11 queue.AddLeaf(4)
12 queue.AddLeaf(5)
13 queue.AddMerge(nodeKey{1, 2})
14 queue.AddMerge(nodeKey{1, 1})
15
16 var order []nodeKey
17 for {
18 key, ready := queue.Next()
19 if !ready {
20 break
21 }
22
23 order = append(order, key)
24 }
25
26 require.Equal(t, []nodeKey{{1, 1}, {0, 4}, {0, 5}, {1, 2}}, order)
27 }
28
29 func TestQueueRetriesAFailedMergeAtTheNextMessage(t *testing.T) {
30 queue := newQueue()
31 queue.AddMerge(nodeKey{1, 0})
32
33 key, ready := queue.Next()
34 require.True(t, ready)
35
36 queue.Fail(key)
37 _, ready = queue.Next()
38 require.False(t, ready)
39
40 queue.Retry()
41 key, ready = queue.Next()
42 require.True(t, ready)
43 require.Equal(t, nodeKey{1, 0}, key)
44
45 queue.Done(key)
46 queue.AddMerge(nodeKey{1, 0})
47 _, ready = queue.Next()
48 require.True(t, ready)
49 }