Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/praefect/nodes/local_elector_test.go')
-rw-r--r--internal/praefect/nodes/local_elector_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/internal/praefect/nodes/local_elector_test.go b/internal/praefect/nodes/local_elector_test.go
new file mode 100644
index 000000000..16f3a3875
--- /dev/null
+++ b/internal/praefect/nodes/local_elector_test.go
@@ -0,0 +1,53 @@
+package nodes
+
+import (
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/internal/praefect/models"
+ "gitlab.com/gitlab-org/gitaly/internal/testhelper"
+ "gitlab.com/gitlab-org/gitaly/internal/testhelper/promtest"
+ "google.golang.org/grpc"
+)
+
+func TestPrimaryAndSecondaries(t *testing.T) {
+ socket := testhelper.GetTemporaryGitalySocketFileName()
+ svr, _ := testhelper.NewServerWithHealth(t, socket)
+ defer svr.Stop()
+
+ cc, err := grpc.Dial(
+ "unix://"+socket,
+ grpc.WithInsecure(),
+ )
+
+ require.NoError(t, err)
+
+ storageName := "default"
+ mockHistogramVec := promtest.NewMockHistogramVec()
+
+ cs := newConnectionStatus(models.Node{Storage: storageName}, cc, testhelper.DiscardTestEntry(t), mockHistogramVec)
+ strategy := newLocalElector(storageName, true)
+
+ strategy.addNode(cs, true)
+ strategy.bootstrap(time.Second)
+
+ primary, err := strategy.GetPrimary()
+
+ require.NoError(t, err)
+ require.Equal(t, primary, cs)
+
+ secondaries, err := strategy.GetSecondaries()
+
+ require.NoError(t, err)
+ require.Equal(t, 0, len(secondaries))
+
+ secondary := newConnectionStatus(models.Node{Storage: storageName}, cc, testhelper.DiscardTestEntry(t), nil)
+ strategy.addNode(secondary, false)
+
+ secondaries, err = strategy.GetSecondaries()
+
+ require.NoError(t, err)
+ require.Equal(t, 1, len(secondaries))
+ require.Equal(t, secondary, secondaries[0])
+}