61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package agent
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/consul/agent/connect"
|
|
"github.com/hashicorp/consul/agent/structs"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestConnectCARoots_empty(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := assert.New(t)
|
|
a := NewTestAgent(t.Name(), "")
|
|
defer a.Shutdown()
|
|
|
|
req, _ := http.NewRequest("GET", "/v1/connect/ca/roots", nil)
|
|
resp := httptest.NewRecorder()
|
|
obj, err := a.srv.ConnectCARoots(resp, req)
|
|
assert.Nil(err)
|
|
|
|
value := obj.(structs.IndexedCARoots)
|
|
assert.Equal(value.ActiveRootID, "")
|
|
assert.Len(value.Roots, 0)
|
|
}
|
|
|
|
func TestConnectCARoots_list(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := assert.New(t)
|
|
a := NewTestAgent(t.Name(), "")
|
|
defer a.Shutdown()
|
|
|
|
// Set some CAs
|
|
var reply interface{}
|
|
ca1 := connect.TestCA(t, nil)
|
|
ca1.Active = false
|
|
ca2 := connect.TestCA(t, nil)
|
|
assert.Nil(a.RPC("Test.ConnectCASetRoots",
|
|
[]*structs.CARoot{ca1, ca2}, &reply))
|
|
|
|
// List
|
|
req, _ := http.NewRequest("GET", "/v1/connect/ca/roots", nil)
|
|
resp := httptest.NewRecorder()
|
|
obj, err := a.srv.ConnectCARoots(resp, req)
|
|
assert.Nil(err)
|
|
|
|
value := obj.(structs.IndexedCARoots)
|
|
assert.Equal(value.ActiveRootID, ca2.ID)
|
|
assert.Len(value.Roots, 2)
|
|
|
|
// We should never have the secret information
|
|
for _, r := range value.Roots {
|
|
assert.Equal("", r.SigningCert)
|
|
assert.Equal("", r.SigningKey)
|
|
}
|
|
}
|