It("raises error when invalid flag is provided", func() { args := []string{ts.Port(), "list-apps", "--invalid_flag"} session, err := gexec.Start(exec.Command(validPluginPath, args...), GinkgoWriter, GinkgoWriter) session.Wait() Ω(err).NotTo(HaveOccurred()) Ω(session).To(gbytes.Say("FAILED")) Ω(session).To(gbytes.Say("invalid_flag")) }) }) Context("Running the command", func() { Context("Curling v2/apps endpoint", func() { It("shows the endpoint it is curling", func() { rpcHandlers.ApiEndpointStub = func(_ string, retVal *string) error { *retVal = "api.example.com" return nil } args := []string{ts.Port(), "list-apps"} session, err := gexec.Start(exec.Command(validPluginPath, args...), GinkgoWriter, GinkgoWriter) session.Wait() Ω(err).NotTo(HaveOccurred()) Ω(session).To(gbytes.Say("api.example.com/v2/apps")) }) It("raises an error when ApiEndpoint() returns an error", func() { rpcHandlers.ApiEndpointStub = func(_ string, retVal *string) error { *retVal = "" return errors.New("Bad bad error") }