github.com/emate/nomad@v0.8.2-wo-binpacking/api/regions_test.go (about)

     1  package api
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/nomad/testutil"
     8  )
     9  
    10  func TestRegionsList(t *testing.T) {
    11  	t.Parallel()
    12  	c1, s1 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
    13  		c.Region = "regionA"
    14  	})
    15  	defer s1.Stop()
    16  
    17  	c2, s2 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
    18  		c.Region = "regionB"
    19  	})
    20  	defer s2.Stop()
    21  
    22  	// Join the servers
    23  	if _, err := c2.Agent().Join(s1.SerfAddr); err != nil {
    24  		t.Fatalf("err: %v", err)
    25  	}
    26  
    27  	// Regions returned and sorted
    28  	testutil.WaitForResult(func() (bool, error) {
    29  		regions, err := c1.Regions().List()
    30  		if err != nil {
    31  			return false, err
    32  		}
    33  		if n := len(regions); n != 2 {
    34  			return false, fmt.Errorf("expected 2 regions, got: %d", n)
    35  		}
    36  		if regions[0] != "regionA" || regions[1] != "regionB" {
    37  			return false, fmt.Errorf("bad: %#v", regions)
    38  		}
    39  		return true, nil
    40  	}, func(err error) {
    41  		t.Fatalf("err: %v", err)
    42  	})
    43  }