github.com/akzi/consul@v1.4.5/command/tls/cert/create/tls_cert_create_test.go (about) 1 package create 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path" 7 "strings" 8 "testing" 9 10 "github.com/hashicorp/consul/agent/connect" 11 "github.com/hashicorp/consul/testutil" 12 "github.com/mitchellh/cli" 13 "github.com/stretchr/testify/require" 14 15 "github.com/hashicorp/consul/command/tls/ca/create" 16 ) 17 18 func TestValidateCommand_noTabs(t *testing.T) { 19 t.Parallel() 20 if strings.ContainsRune(New(nil).Help(), '\t') { 21 t.Fatal("help has tabs") 22 } 23 } 24 25 func TestTlsCertCreateCommand_fileCreate(t *testing.T) { 26 require := require.New(t) 27 28 previousDirectory, err := os.Getwd() 29 require.NoError(err) 30 31 testDir := testutil.TempDir(t, "tls") 32 defer os.RemoveAll(testDir) 33 defer os.Chdir(previousDirectory) 34 35 os.Chdir(testDir) 36 37 ui := cli.NewMockUi() 38 cmd := New(ui) 39 40 // Setup CA keys 41 createCA(t, "consul") 42 43 caPath := path.Join(testDir, "consul-agent-ca.pem") 44 require.FileExists(caPath) 45 46 args := []string{ 47 "-server", 48 } 49 50 require.Equal(0, cmd.Run(args)) 51 require.Equal("", ui.ErrorWriter.String()) 52 53 certPath := path.Join(testDir, "dc1-server-consul-0.pem") 54 keyPath := path.Join(testDir, "dc1-server-consul-0-key.pem") 55 56 require.FileExists(certPath) 57 require.FileExists(keyPath) 58 59 certData, err := ioutil.ReadFile(certPath) 60 require.NoError(err) 61 keyData, err := ioutil.ReadFile(keyPath) 62 require.NoError(err) 63 64 cert, err := connect.ParseCert(string(certData)) 65 require.NoError(err) 66 require.NotNil(cert) 67 68 signer, err := connect.ParseSigner(string(keyData)) 69 require.NoError(err) 70 require.NotNil(signer) 71 72 // TODO - maybe we should validate some certs here. 73 } 74 75 func createCA(t *testing.T, domain string) { 76 ui := cli.NewMockUi() 77 caCmd := create.New(ui) 78 79 args := []string{ 80 "-domain=" + domain, 81 } 82 83 require.Equal(t, 0, caCmd.Run(args)) 84 require.Equal(t, "", ui.ErrorWriter.String()) 85 }