BeforeEach(func() { cliConn = &fakes.FakeCliConnection{} autopilotPlugin = &AutopilotPlugin{} }) It("displays push usage when push-zdd called with no arguments", func() { autopilotPlugin.Run(cliConn, []string{"push-zdd"}) Ω(cliConn.CliCommandCallCount()).Should(Equal(1)) args := cliConn.CliCommandArgsForCall(0) Ω(args).Should(Equal([]string{"push", "-h"})) }) It("can push an app that already exists", func() { cliConn.CliCommandReturns([]string{"myapp and-other-stuff"}, nil) output := CaptureOutput(func() { autopilotPlugin.Run(cliConn, []string{"push-zdd", "myapp"}) }) Expect(len(ActionList)).To(Equal(3)) Expect(output).To(ContainElement(ContainSubstring("using zero-downtime-deployment"))) }) It("can push an app that doesn't exist", func() { cliConn.CliCommandReturns([]string{"some-other-app and-other-stuff"}, nil) output := CaptureOutput(func() { autopilotPlugin.Run(cliConn, []string{"push-zdd", "my-new-app"}) }) Expect(len(ActionList)).To(Equal(1))
cliConn = &fakes.FakeCliConnection{} repo = NewApplicationRepo(cliConn) }) Describe("RenameApplication", func() { It("renames the application", func() { err := repo.RenameApplication("old-name", "new-name") Ω(err).ShouldNot(HaveOccurred()) Ω(cliConn.CliCommandCallCount()).Should(Equal(1)) args := cliConn.CliCommandArgsForCall(0) Ω(args).Should(Equal([]string{"rename", "old-name", "new-name"})) }) It("returns an error if one occurs", func() { cliConn.CliCommandReturns([]string{}, errors.New("no app")) err := repo.RenameApplication("old-name", "new-name") Ω(err).Should(MatchError("no app")) }) }) Describe("PushApplication", func() { It("pushes an application with both a manifest and a path", func() { err := repo.PushApplication([]string{"push", "myapp", "-f", "/path/to/a/manifest.yml", "-p", "/path/to/the/app"}) Ω(err).ShouldNot(HaveOccurred()) Ω(cliConn.CliCommandCallCount()).Should(Equal(1)) args := cliConn.CliCommandArgsForCall(0) Ω(args).Should(Equal([]string{ "push",
var fakeCliConnection *fakes.FakeCliConnection var callCliCommandPlugin *CliCmd BeforeEach(func() { fakeCliConnection = &fakes.FakeCliConnection{} callCliCommandPlugin = &CliCmd{} }) It("calls the cli command that is passed as an argument", func() { io_helpers.CaptureOutput(func() { callCliCommandPlugin.Run(fakeCliConnection, []string{"cli-command", "plugins", "arg1"}) }) Expect(fakeCliConnection.CliCommandArgsForCall(0)[0]).To(Equal("plugins")) Expect(fakeCliConnection.CliCommandArgsForCall(0)[1]).To(Equal("arg1")) }) It("ouputs the text returned by the cli command", func() { fakeCliConnection.CliCommandReturns([]string{"Hi", "Mom"}, nil) output := io_helpers.CaptureOutput(func() { callCliCommandPlugin.Run(fakeCliConnection, []string{"cli-command", "plugins", "arg1"}) }) Expect(output[1]).To(Equal("---------- Command output from the plugin ----------")) Expect(output[2]).To(Equal("# 0 value: Hi")) Expect(output[3]).To(Equal("# 1 value: Mom")) Expect(output[4]).To(Equal("---------- FIN -----------")) }) }) })