github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/client/serviceregistration/nsd/statuses_test.go (about)

     1  package nsd
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/nomad/ci"
     7  	"github.com/hashicorp/nomad/client/serviceregistration"
     8  	"github.com/hashicorp/nomad/client/serviceregistration/checks/checkstore"
     9  	"github.com/hashicorp/nomad/client/state"
    10  	"github.com/hashicorp/nomad/helper/testlog"
    11  	"github.com/hashicorp/nomad/helper/uuid"
    12  	"github.com/hashicorp/nomad/nomad/structs"
    13  	"github.com/shoenig/test/must"
    14  )
    15  
    16  var _ serviceregistration.CheckStatusGetter = (*StatusGetter)(nil)
    17  
    18  func TestStatusGetter_Get(t *testing.T) {
    19  	ci.Parallel(t)
    20  	logger := testlog.HCLogger(t)
    21  
    22  	db := state.NewMemDB(logger)
    23  	s := checkstore.NewStore(logger, db)
    24  
    25  	// setup some sample check results
    26  	id1, id2, id3 := uuid.Short(), uuid.Short(), uuid.Short()
    27  	must.NoError(t, s.Set("allocation1", &structs.CheckQueryResult{
    28  		ID:     structs.CheckID(id1),
    29  		Status: "passing",
    30  	}))
    31  	must.NoError(t, s.Set("allocation1", &structs.CheckQueryResult{
    32  		ID:     structs.CheckID(id2),
    33  		Status: "failing",
    34  	}))
    35  	must.NoError(t, s.Set("allocation2", &structs.CheckQueryResult{
    36  		ID:     structs.CheckID(id3),
    37  		Status: "passing",
    38  	}))
    39  
    40  	getter := StatusGetter{shim: s}
    41  	snap, err := getter.Get()
    42  	must.NoError(t, err)
    43  	must.MapEq(t, map[string]string{
    44  		id1: "passing",
    45  		id2: "failing",
    46  		id3: "passing",
    47  	}, snap)
    48  }