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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package main
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/internal/praefect/config"
"gitlab.com/gitlab-org/gitaly/internal/praefect/models"
)
func TestNoConfigFlag(t *testing.T) {
_, err := initConfig()
assert.Equal(t, err, errNoConfigFile)
}
func TestFlattenNodes(t *testing.T) {
for _, tt := range []struct {
desc string
conf config.Config
expect map[string]*nodePing
}{
{
desc: "Flatten common address between storages",
conf: config.Config{
VirtualStorages: []*config.VirtualStorage{
{
Name: "meow",
Nodes: []*models.Node{
{
Storage: "foo",
Address: "tcp://example.com",
Token: "abc",
DefaultPrimary: true,
},
},
},
{
Name: "woof",
Nodes: []*models.Node{
{
Storage: "bar",
Address: "tcp://example.com",
Token: "abc",
DefaultPrimary: true,
},
},
},
},
},
expect: map[string]*nodePing{
"tcp://example.com": &nodePing{
address: "tcp://example.com",
storages: map[string]struct{}{
"foo": struct{}{},
"bar": struct{}{},
},
vStorages: map[string]struct{}{
"meow": struct{}{},
"woof": struct{}{},
},
token: "abc",
},
},
},
} {
t.Run(tt.desc, func(t *testing.T) {
actual := flattenNodes(tt.conf)
require.Equal(t, tt.expect, actual)
})
}
}
|