Context("when a S3 blob store is targeted", func() { BeforeEach(func() { config.SetS3BlobStore("access", "secret", "bucket", "region") Expect(config.Save()).To(Succeed()) }) It("outputs the s3 bucket and region", func() { Expect(outputBuffer).To(test_helpers.SayLine("Droplet store:\ts3://bucket (region)")) }) }) }) Context("when initially connecting to the receptor without authentication", func() { BeforeEach(func() { fakeTargetVerifier.VerifyTargetReturns(true, true, nil) fakeBlobStoreVerifier.VerifyReturns(true, nil) }) It("saves the new receptor target", func() { test_helpers.ExecuteCommandWithArgs(targetCommand, []string{"myapi.com"}) Expect(fakeTargetVerifier.VerifyTargetCallCount()).To(Equal(1)) Expect(fakeTargetVerifier.VerifyTargetArgsForCall(0)).To(Equal("http://receptor.myapi.com")) newConfig := config_package.New(configPersister) Expect(newConfig.Load()).To(Succeed()) Expect(newConfig.Receptor()).To(Equal("http://receptor.myapi.com")) }) It("clears out existing saved target credentials", func() {
} cliAppArgs := []string{"ltc", "buy-me-a-pony"} err := cliApp.Run(cliAppArgs) Expect(err).NotTo(HaveOccurred()) Expect(commandRan).To(BeTrue()) Expect(fakeTargetVerifier.VerifyTargetCallCount()).To(Equal(0)) }) }) Context("Any other command", func() { Context("when targeted receptor is up and we are authorized", func() { It("executes the command", func() { fakeTargetVerifier.VerifyTargetReturns(true, true, nil) cliConfig.SetTarget("my-lattice.example.com") Expect(cliConfig.Save()).To(Succeed()) commandRan := false cliApp.Commands = []cli.Command{ cli.Command{ Name: "print-a-unicorn", Action: func(ctx *cli.Context) { commandRan = true }, }, } cliAppArgs := []string{"ltc", "print-a-unicorn"}
Action: func(ctx *cli.Context) {}, Flags: []cli.Flag{ cli.IntFlag{ Name: "flag1, f1", Usage: "flag for print-a-unicorn command", Value: 10, }, cli.BoolFlag{ Name: "flag2, f2", Usage: "flag for print-a-unicorn command", }, }, }, } fakeTargetVerifier.VerifyTargetReturns(true, true, nil) cliConfig.SetTarget("my-lattice.example.com") cliConfig.Save() }) It("informs user for any incorrect provided flags", func() { cliAppArgs := []string{"ltc", "print-a-unicorn", "--bad-flag=10"} flags := main.GetCommandFlags(cliApp, cliAppArgs[1]) badFlags := main.MatchArgAndFlags(flags, cliAppArgs[2:]) main.InjectHelpTemplate(badFlags) err := cliApp.Run(cliAppArgs) Expect(err).To(HaveOccurred()) Expect(outputBuffer).To(test_helpers.Say("Incorrect Usage.")) Expect(outputBuffer).To(test_helpers.Say("Unknown flag \"--bad-flag\"")) })