github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/command/v2/shared/errors_test.go (about) 1 package shared_test 2 3 import ( 4 "bytes" 5 "text/template" 6 7 . "code.cloudfoundry.org/cli/command/v2/shared" 8 "code.cloudfoundry.org/cli/util/ui" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/ginkgo/extensions/table" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("Translatable Errors", func() { 16 translateFunc := func(s string, vars ...interface{}) string { 17 formattedTemplate, err := template.New("test template").Parse(s) 18 Expect(err).ToNot(HaveOccurred()) 19 formattedTemplate.Option("missingkey=error") 20 21 var buffer bytes.Buffer 22 if len(vars) > 0 { 23 err = formattedTemplate.Execute(&buffer, vars[0]) 24 Expect(err).ToNot(HaveOccurred()) 25 26 return buffer.String() 27 } else { 28 return s 29 } 30 } 31 32 DescribeTable("translates error", 33 func(e error) { 34 err, ok := e.(ui.TranslatableError) 35 Expect(ok).To(BeTrue()) 36 err.Translate(translateFunc) 37 }, 38 39 // Actor errors. 40 Entry("JobFailedError", JobFailedError{}), 41 Entry("JobTimeoutError", JobTimeoutError{}), 42 Entry("HTTPHealthCheckInvalidError", HTTPHealthCheckInvalidError{}), 43 Entry("StagingFailedError", StagingFailedError{}), 44 45 // Command errors. 46 Entry("NoOrgTargetedError", NoOrganizationTargetedError{}), 47 Entry("OrgNotFoundError", OrganizationNotFoundError{}), 48 Entry("SpaceNotFoundError", SpaceNotFoundError{}), 49 ) 50 })