open-nomad/api/regions_test.go

54 lines
1.2 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package api
import (
"fmt"
"testing"
"time"
"github.com/hashicorp/nomad/api/internal/testutil"
"github.com/shoenig/test/must"
"github.com/shoenig/test/wait"
)
func TestRegionsList(t *testing.T) {
testutil.Parallel(t)
c1, s1 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
c.Region = "regionA"
})
defer s1.Stop()
c2, s2 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
c.Region = "regionB"
})
defer s2.Stop()
// Join the servers
_, err := c2.Agent().Join(s1.SerfAddr)
must.NoError(t, err)
f := func() error {
regions, err := c1.Regions().List()
if err != nil {
return fmt.Errorf("failed to get regions: %w", err)
}
if n := len(regions); n != 2 {
return fmt.Errorf("expected 2 regions, got %d", n)
}
if regions[0] != "regionA" {
return fmt.Errorf("unexpected first region, got: %s", regions[0])
}
if regions[1] != "regionB" {
return fmt.Errorf("unexpected second region, got: %s", regions[1])
}
return nil
}
must.Wait(t, wait.InitialSuccess(
wait.ErrorFunc(f),
wait.Timeout(10*time.Second),
wait.Gap(1*time.Second),
))
}