It("prints the main help menu of the 'cf' app", func() { flagContext.Parse() cmd.Execute(flagContext) Eventually(buffer.Contents()).Should(ContainSubstring("A command line tool to interact with Cloud Foundry")) Eventually(buffer).Should(gbytes.Say("CF_TRACE=true")) }) }) Context("when a command name is provided as an argument", func() { Context("When the command exists", func() { It("prints the usage help for the command", func() { flagContext.Parse("target") cmd.Execute(flagContext) Expect(fakeUI.SayCallCount()).To(Equal(1)) output, _ := fakeUI.SayArgsForCall(0) Expect(output).To(ContainSubstring("target - Set or view the targeted org or space")) }) }) Context("When the command does not exists", func() { It("prints the usage help for the command", func() { flagContext.Parse("bad-command") cmd.Execute(flagContext) Expect(fakeUI.FailedCallCount()).To(Equal(1)) output, _ := fakeUI.FailedArgsForCall(0) Expect(output).To(ContainSubstring("'bad-command' is not a registered command. See 'cf help'")) }) })
var _ = Describe("Panic Printer", func() { var ( ui *terminalfakes.FakeUI panicPrinter PanicPrinter ) BeforeEach(func() { ui = new(terminalfakes.FakeUI) panicPrinter = NewPanicPrinter(ui) }) Describe("DisplayCrashDialog", func() { It("includes the error message when given an error", func() { panicPrinter.DisplayCrashDialog(errors.New("some-error"), "some command", "some trace") Expect(ui.SayCallCount()).To(Equal(1)) Expect(ui.SayArgsForCall(0)).To(Equal(CrashDialog("some-error", "some command", "some trace"))) }) It("includes the string when given a string that is not terminal.QuietPanic", func() { panicPrinter.DisplayCrashDialog("some-error", "some command", "some trace") Expect(ui.SayCallCount()).To(Equal(1)) Expect(ui.SayArgsForCall(0)).To(Equal(CrashDialog("some-error", "some command", "some trace"))) }) It("prints the unexpected error type message when not given a string or an error", func() { panicPrinter.DisplayCrashDialog(struct{}{}, "some command", "some trace") Expect(ui.SayCallCount()).To(Equal(1)) Expect(ui.SayArgsForCall(0)).To(ContainSubstring("An unexpected type of error")) })