github.com/letsencrypt/boulder@v0.20251208.0/grpc/client_test.go (about) 1 package grpc 2 3 import ( 4 "crypto/tls" 5 "testing" 6 7 "github.com/jmhodges/clock" 8 "github.com/letsencrypt/boulder/cmd" 9 "github.com/letsencrypt/boulder/metrics" 10 "github.com/letsencrypt/boulder/test" 11 _ "google.golang.org/grpc/health" 12 ) 13 14 func TestClientSetup(t *testing.T) { 15 tests := []struct { 16 name string 17 cfg *cmd.GRPCClientConfig 18 expectTarget string 19 wantErr bool 20 }{ 21 {"valid, address provided", &cmd.GRPCClientConfig{ServerAddress: "localhost:8080"}, "dns:///localhost:8080", false}, 22 {"valid, implicit localhost with port provided", &cmd.GRPCClientConfig{ServerAddress: ":8080"}, "dns:///:8080", false}, 23 {"valid, IPv6 address provided", &cmd.GRPCClientConfig{ServerAddress: "[::1]:8080"}, "dns:///[::1]:8080", false}, 24 {"invalid, no address or addresses provided", &cmd.GRPCClientConfig{}, "", true}, 25 } 26 for _, tt := range tests { 27 t.Run(tt.name, func(t *testing.T) { 28 client, err := ClientSetup(tt.cfg, &tls.Config{}, metrics.NoopRegisterer, clock.NewFake()) 29 if tt.wantErr { 30 test.AssertError(t, err, "expected error, got nil") 31 } else { 32 test.AssertNotError(t, err, "unexpected error") 33 } 34 if tt.expectTarget != "" { 35 test.AssertEquals(t, client.Target(), tt.expectTarget) 36 } 37 }) 38 } 39 }