mirror of https://github.com/linkerd/linkerd2.git
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package cmd
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
healthcheckPb "github.com/runconduit/conduit/controller/gen/common/healthcheck"
|
|
"github.com/runconduit/conduit/pkg/k8s"
|
|
)
|
|
|
|
func TestCheckStatus(t *testing.T) {
|
|
t.Run("Prints expected output", func(t *testing.T) {
|
|
kubeApi := &k8s.MockKubeApi{}
|
|
kubeApi.SelfCheckResultsToReturn = []*healthcheckPb.CheckResult{
|
|
{
|
|
SubsystemName: k8s.KubeapiSubsystemName,
|
|
CheckDescription: k8s.KubeapiClientCheckDescription,
|
|
Status: healthcheckPb.CheckStatus_FAIL,
|
|
FriendlyMessageToUser: "This should contain instructions for fail",
|
|
},
|
|
{
|
|
SubsystemName: k8s.KubeapiSubsystemName,
|
|
CheckDescription: k8s.KubeapiAccessCheckDescription,
|
|
Status: healthcheckPb.CheckStatus_OK,
|
|
FriendlyMessageToUser: "This shouldn't be printed",
|
|
},
|
|
{
|
|
SubsystemName: k8s.KubeapiSubsystemName,
|
|
CheckDescription: k8s.KubeapiVersionCheckDescription,
|
|
Status: healthcheckPb.CheckStatus_ERROR,
|
|
FriendlyMessageToUser: "This should contain instructions for err",
|
|
},
|
|
}
|
|
|
|
output := bytes.NewBufferString("")
|
|
checkStatus(output, kubeApi)
|
|
|
|
goldenFileBytes, err := ioutil.ReadFile("testdata/status_busy_output.golden")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
|
|
expectedContent := string(goldenFileBytes)
|
|
|
|
if expectedContent != output.String() {
|
|
t.Fatalf("Expected function to render:\n%s\bbut got:\n%s", expectedContent, output)
|
|
}
|
|
})
|
|
}
|