github.com/mattyr/nomad@v0.3.3-0.20160919021406-3485a065154a/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  	c1, s1 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
    12  		c.Region = "regionA"
    13  	})
    14  	defer s1.Stop()
    15  
    16  	c2, s2 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
    17  		c.Region = "regionB"
    18  	})
    19  	defer s2.Stop()
    20  
    21  	// Join the servers
    22  	if _, err := c2.Agent().Join(s1.SerfAddr); err != nil {
    23  		t.Fatalf("err: %v", err)
    24  	}
    25  
    26  	// Regions returned and sorted
    27  	testutil.WaitForResult(func() (bool, error) {
    28  		regions, err := c1.Regions().List()
    29  		if err != nil {
    30  			return false, err
    31  		}
    32  		if n := len(regions); n != 2 {
    33  			return false, fmt.Errorf("expected 2 regions, got: %d", n)
    34  		}
    35  		if regions[0] != "regionA" || regions[1] != "regionB" {
    36  			return false, fmt.Errorf("bad: %#v", regions)
    37  		}
    38  		return true, nil
    39  	}, func(err error) {
    40  		t.Fatalf("err: %v", err)
    41  	})
    42  }