]> git.giacomolli.uk - onechat/blobdiff - view_test.go
Shorten the daemon log lines
[onechat] / view_test.go
index 7184f8c7b2c89cab9d6139567916dfc071fccfea..56abdd6b81e12e72d0db7ad5a5e72e4b6d5f9537 100644 (file)
@@ -44,7 +44,7 @@ func TestViewMergesInOneBatchFromHighToLow(t *testing.T) {
 
 func TestViewMergesOnlyBuiltParents(t *testing.T) {
        tree := ViewPartTree{
-               sizes: map[nodeKey]int{
+               sizes: map[NodeKey]int{
                        {0, 0}: 1,
                        {0, 1}: 1,
                        {0, 2}: 1,
@@ -60,27 +60,27 @@ func TestViewMergesOnlyBuiltParents(t *testing.T) {
                require.NoError(t, err)
        }
 
-       require.Equal(t, []nodeKey{{0, 0}, {0, 1}, {0, 2}, {0, 3}}, view.lines)
+       require.Equal(t, []NodeKey{{0, 0}, {0, 1}, {0, 2}, {0, 3}}, view.lines)
        require.True(t, view.merging)
 
-       tree.sizes[nodeKey{1, 0}] = 1
+       tree.sizes[NodeKey{1, 0}] = 1
        _, err := view.Append(tree)
        require.NoError(t, err)
-       require.Equal(t, []nodeKey{{1, 0}, {0, 2}, {0, 3}, {0, 4}}, view.lines)
+       require.Equal(t, []NodeKey{{1, 0}, {0, 2}, {0, 3}, {0, 4}}, view.lines)
        require.True(t, view.merging)
 
-       tree.sizes[nodeKey{1, 1}] = 1
-       tree.sizes[nodeKey{1, 2}] = 1
-       tree.sizes[nodeKey{2, 0}] = 1
+       tree.sizes[NodeKey{1, 1}] = 1
+       tree.sizes[NodeKey{1, 2}] = 1
+       tree.sizes[NodeKey{2, 0}] = 1
        _, err = view.Append(tree)
        require.NoError(t, err)
-       require.Equal(t, []nodeKey{{2, 0}, {1, 2}}, view.lines)
+       require.Equal(t, []NodeKey{{2, 0}, {1, 2}}, view.lines)
        require.False(t, view.merging)
 }
 
 func TestViewRendersPendingLinesWithoutTheirMessage(t *testing.T) {
        tree := ViewPartTree{
-               sizes: map[nodeKey]int{
+               sizes: map[NodeKey]int{
                        {0, 0}: 3,
                        {0, 1}: 3,
                        {1, 0}: 7,
@@ -107,17 +107,17 @@ func TestViewCoarsenTakesTheCoarserLines(t *testing.T) {
        require.NoError(t, err)
 
        require.NoError(t, view.Coarsen(other, ViewBuiltTree{}))
-       require.Equal(t, []nodeKey{{1, 0}, {1, 1}, {0, 4}, {0, 5}}, view.lines)
+       require.Equal(t, []NodeKey{{1, 0}, {1, 1}, {0, 4}, {0, 5}}, view.lines)
 
        view.low = 2
        require.NoError(t, view.Coarsen(other, ViewBuiltTree{}))
-       require.Equal(t, []nodeKey{{2, 0}, {1, 2}}, view.lines)
+       require.Equal(t, []NodeKey{{2, 0}, {1, 2}}, view.lines)
        require.False(t, view.merging)
 }
 
 func TestViewContextStopsAtTheFirstPendingLine(t *testing.T) {
        tree := ViewPartTree{
-               sizes: map[nodeKey]int{
+               sizes: map[NodeKey]int{
                        {0, 0}: 1,
                        {0, 1}: 1,
                        {1, 0}: 1,
@@ -149,7 +149,7 @@ func (ViewBuiltTree) Built(level, index int) (bool, error) {
 }
 
 func (ViewBuiltTree) Node(level, index int) (Node, bool, error) {
-       return testNode(level, index, "a"), true, nil
+       return treeTestNode(level, index, "a"), true, nil
 }
 
 // ViewPushEntry is one entry of the rollback state list of the reference
@@ -175,16 +175,16 @@ func (e *ViewPushEntry) starts() []int {
 
 // ViewPartTree is a tree with the built nodes of its sizes.
 type ViewPartTree struct {
-       sizes map[nodeKey]int
+       sizes map[NodeKey]int
 }
 
 func (p ViewPartTree) Built(level, index int) (bool, error) {
-       _, built := p.sizes[nodeKey{level, index}]
+       _, built := p.sizes[NodeKey{level, index}]
        return built, nil
 }
 
 func (p ViewPartTree) Node(level, index int) (Node, bool, error) {
-       size, built := p.sizes[nodeKey{level, index}]
+       size, built := p.sizes[NodeKey{level, index}]
        if !built {
                return Node{}, false, nil
        }
@@ -194,10 +194,14 @@ func (p ViewPartTree) Node(level, index int) (Node, bool, error) {
                text = "aaa\naaa"
        }
 
-       return testNode(level, index, text), true, nil
+       return treeTestNode(level, index, text), true, nil
 }
 
-// viewPush is the push of rollback_state_list.js.
+// viewPush adds state to the newest end of states and returns the new list. An
+// empty list gets one entry. When the newest entry is not kept, it becomes kept
+// with its own state, and state is dropped. When it is kept, state becomes a
+// new newest entry, and the state of the old newest entry goes to the older
+// entries by the same push.
 func viewPush(state int, states *ViewPushEntry) *ViewPushEntry {
        if states == nil {
                return &ViewPushEntry{