diff --git a/go.mod b/go.mod index df638216c..abcadfdad 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( code.cloudfoundry.org/go-diodes v0.0.0-20180905200951-72629b5276e3 // indirect code.cloudfoundry.org/go-loggregator v7.3.0+incompatible code.cloudfoundry.org/rfc5424 v0.0.0-20180905210152-236a6d29298a // indirect - github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190808224645-75adc7853251 + github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190819181953-621a86920bf4 github.com/cloudfoundry/custom-cats-reporters v0.0.0-20180629210428-75213ee79907 github.com/cloudfoundry/gosteno v0.0.0-20150423193413-0c8581caea35 // indirect github.com/cloudfoundry/loggregatorlib v0.0.0-20160505035404-03bfd6ee4743 // indirect diff --git a/go.sum b/go.sum index b9eed1b46..06f3967b4 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ code.cloudfoundry.org/rfc5424 v0.0.0-20180905210152-236a6d29298a h1:8rqv2w8xEceN code.cloudfoundry.org/rfc5424 v0.0.0-20180905210152-236a6d29298a/go.mod h1:tkZo8GtzBjySJ7USvxm4E36lNQw1D3xM6oKHGqdaAJ4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190808224645-75adc7853251 h1:4qHHiUyGpxYTaqs4a9RPkzzF/f1WSSVeoZ6h9lQGJjE= -github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190808224645-75adc7853251/go.mod h1:I21tkmFwW9F06eYcQm5GTUzNV+pc1Q5NVZ1qhWOGGx0= +github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190819181953-621a86920bf4 h1:gkOZVJxmicnV8y/IDOfmy/dLVY9UYSxWzBd3jUrOqws= +github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190819181953-621a86920bf4/go.mod h1:I21tkmFwW9F06eYcQm5GTUzNV+pc1Q5NVZ1qhWOGGx0= github.com/cloudfoundry/custom-cats-reporters v0.0.0-20180629210428-75213ee79907 h1:wyYh6Iv81IwgCyIBG7OW34s5GQOGuWPWECF47arkSNQ= github.com/cloudfoundry/custom-cats-reporters v0.0.0-20180629210428-75213ee79907/go.mod h1:uxXHu50QB3u67C2PZlaFBlc9yTy9gQ4Nb+nL3J959bU= github.com/cloudfoundry/gosteno v0.0.0-20150423193413-0c8581caea35 h1:HdAWGlVEbFxuALqHXYu14XvAbRbyWZLd817ojygGnk0= diff --git a/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/cf/cf.go b/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/cf/cf.go index b30d9d3b9..3d91c57f1 100644 --- a/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/cf/cf.go +++ b/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/cf/cf.go @@ -1,6 +1,8 @@ package cf import ( + "io" + "github.com/cloudfoundry-incubator/cf-test-helpers/commandstarter" "github.com/cloudfoundry-incubator/cf-test-helpers/internal" "github.com/cloudfoundry-incubator/cf-test-helpers/silentcommandstarter" @@ -29,3 +31,14 @@ var CfRedact = func(stringToRedact string, args ...string) *gexec.Session { return internal.CfWithCustomReporter(cmdStarter, redactingReporter, args...) } + +// CfWithStdin can be used to prepare arbitrary terminal input from the user in the tests. +// Here is an example of how it can be used: +// +// inputConfirmingPrompt := bytes.NewBufferString("yes\n") +// session := cf.CfWithStdin(inputConfirmingPrompt, "update-service", "my-service", "--upgrade") +// Eventually(session).Should(Exit(0)) +var CfWithStdin = func(stdin io.Reader, args ...string) *gexec.Session { + cmdStarter := commandstarter.NewCommandStarterWithStdin(stdin) + return internal.Cf(cmdStarter, args...) +} diff --git a/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/commandstarter/command_starter.go b/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/commandstarter/command_starter.go index 628c19be1..0dce05cd5 100644 --- a/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/commandstarter/command_starter.go +++ b/vendor/github.com/cloudfoundry-incubator/cf-test-helpers/commandstarter/command_starter.go @@ -1,6 +1,7 @@ package commandstarter import ( + "io" "os/exec" "time" @@ -10,14 +11,22 @@ import ( ) type CommandStarter struct { + stdin io.Reader } func NewCommandStarter() *CommandStarter { return &CommandStarter{} } +func NewCommandStarterWithStdin(stdin io.Reader) *CommandStarter { + return &CommandStarter{ + stdin: stdin, + } +} + func (r *CommandStarter) Start(reporter internal.Reporter, executable string, args ...string) (*gexec.Session, error) { cmd := exec.Command(executable, args...) + cmd.Stdin = r.stdin reporter.Report(time.Now(), cmd) return gexec.Start(cmd, ginkgo.GinkgoWriter, ginkgo.GinkgoWriter) diff --git a/vendor/modules.txt b/vendor/modules.txt index 5e624d3b9..3912e9174 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -10,7 +10,7 @@ code.cloudfoundry.org/go-loggregator code.cloudfoundry.org/go-loggregator/rpc/loggregator_v2 # code.cloudfoundry.org/rfc5424 v0.0.0-20180905210152-236a6d29298a code.cloudfoundry.org/rfc5424 -# github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190808224645-75adc7853251 +# github.com/cloudfoundry-incubator/cf-test-helpers v1.0.1-0.20190819181953-621a86920bf4 github.com/cloudfoundry-incubator/cf-test-helpers/cf github.com/cloudfoundry-incubator/cf-test-helpers/helpers github.com/cloudfoundry-incubator/cf-test-helpers/workflowhelpers