Eventually(session, 3).Should(gexec.Exit(0)) Expect(session.Out).To(gbytes.Say("Target:")) Expect(session.Out).To(gbytes.Say(fmt.Sprintf("%s.xip.io:%s", listenerHost, listenerPort))) }) Context("when an unknown command is invoked", func() { It("should exit non-zero when an unknown command is invoked", func() { command := ltcCommand("unknown-command") session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter) Expect(err).NotTo(HaveOccurred()) Eventually(session, 3).Should(gexec.Exit(1)) Expect(session.Out).To(gbytes.Say("not a registered command")) }) }) Context("when a known command is invoked with an invalid flag", func() { It("should exit non-zero and print incorrect usage", func() { command := ltcCommand("status", "--badFlag") session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter) Expect(err).NotTo(HaveOccurred()) Eventually(session, 3).Should(gexec.Exit(1)) Expect(session.Out).To(test_helpers.SayIncorrectUsage()) }) }) }) })
Expect(outputBuffer).To(test_helpers.SayLine(colors.Red("Error requesting task status: dropped the ball"))) Expect(outputBuffer).NotTo(test_helpers.SayLine("Timed out waiting for the build to complete.")) Expect(fakeTailedLogsOutputter.StopOutputtingCallCount()).To(Equal(1)) }) }) }) Context("invalid syntax", func() { It("rejects less than two positional arguments", func() { test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"droplet-name"}) Expect(fakeDropletRunner.UploadBitsCallCount()).To(Equal(0)) Expect(fakeDropletRunner.BuildDropletCallCount()).To(Equal(0)) Expect(outputBuffer).To(test_helpers.SayIncorrectUsage()) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.InvalidSyntax})) }) It("tests for an empty droplet name", func() { test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"", "buildpack-name"}) Expect(outputBuffer).To(test_helpers.SayIncorrectUsage()) Expect(fakeDropletRunner.UploadBitsCallCount()).To(Equal(0)) Expect(fakeDropletRunner.BuildDropletCallCount()).To(Equal(0)) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.InvalidSyntax})) }) It("validates cpuWeight is between 1 and 100", func() { test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"-c", "9999", "droplet-name", "java"})
Expect(gbytesBuffer).To(test_helpers.SayLine("sample")) }) It("negated match", func() { gbytesBuffer.Write([]byte("no match")) Expect(gbytesBuffer).ToNot(test_helpers.SayLine("no match")) }) }) Describe("SayIncorrectUsage", func() { It("matches", func() { gbytesBuffer.Write([]byte("Incorrect Usage")) Expect(gbytesBuffer).To(test_helpers.SayIncorrectUsage()) }) It("negated match", func() { gbytesBuffer.Write([]byte("say that")) Expect(gbytesBuffer).ToNot(test_helpers.SayIncorrectUsage()) }) }) Describe("SayNewLine", func() { It("match", func() { gbytesBuffer.Write([]byte("\n")) Expect(gbytesBuffer).To(test_helpers.SayNewLine()) })