mirror of https://github.com/linkerd/linkerd2.git
				
				
				
			
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"context"
 | 
						|
	"fmt"
 | 
						|
	"os"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/linkerd/linkerd2/pkg/healthcheck"
 | 
						|
)
 | 
						|
 | 
						|
func TestCheckStatus(t *testing.T) {
 | 
						|
	t.Run("Prints expected output", func(t *testing.T) {
 | 
						|
		hc := healthcheck.NewHealthChecker(
 | 
						|
			[]healthcheck.CategoryID{},
 | 
						|
			&healthcheck.Options{},
 | 
						|
		)
 | 
						|
		hc.AppendCategories(healthcheck.NewCategory("category", []healthcheck.Checker{
 | 
						|
			*healthcheck.NewChecker("check1").
 | 
						|
				WithCheck(func(context.Context) error {
 | 
						|
					return nil
 | 
						|
				}),
 | 
						|
			*healthcheck.NewChecker("check2").
 | 
						|
				WithHintAnchor("hint-anchor").
 | 
						|
				WithCheck(func(context.Context) error {
 | 
						|
					return fmt.Errorf("This should contain instructions for fail")
 | 
						|
				}),
 | 
						|
		},
 | 
						|
			true,
 | 
						|
		))
 | 
						|
 | 
						|
		output := bytes.NewBufferString("")
 | 
						|
		healthcheck.RunChecks(output, stderr, hc, tableOutput)
 | 
						|
 | 
						|
		goldenFileBytes, err := os.ReadFile("testdata/check_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)
 | 
						|
		}
 | 
						|
	})
 | 
						|
 | 
						|
	t.Run("Prints expected output in json", func(t *testing.T) {
 | 
						|
		hc := healthcheck.NewHealthChecker(
 | 
						|
			[]healthcheck.CategoryID{},
 | 
						|
			&healthcheck.Options{},
 | 
						|
		)
 | 
						|
		hc.AppendCategories(healthcheck.NewCategory("category", []healthcheck.Checker{
 | 
						|
			*healthcheck.NewChecker("check1").
 | 
						|
				WithCheck(func(context.Context) error {
 | 
						|
					return nil
 | 
						|
				}),
 | 
						|
			*healthcheck.NewChecker("check2").
 | 
						|
				WithHintAnchor("hint-anchor").
 | 
						|
				WithCheck(func(context.Context) error {
 | 
						|
					return fmt.Errorf("This should contain instructions for fail")
 | 
						|
				}),
 | 
						|
		},
 | 
						|
			true,
 | 
						|
		))
 | 
						|
 | 
						|
		output := bytes.NewBufferString("")
 | 
						|
		healthcheck.RunChecks(output, stderr, hc, jsonOutput)
 | 
						|
 | 
						|
		goldenFileBytes, err := os.ReadFile("testdata/check_output_json.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)
 | 
						|
		}
 | 
						|
	})
 | 
						|
}
 |