args := []string{ "cool-web-app", "¥¥¥Bad-Docker¥¥¥", "--", "/start-me-please", } test_helpers.ExecuteCommandWithArgs(createCommand, args) Expect(outputBuffer).To(test_helpers.SayLine("Invalid repository name (¥¥¥Bad-Docker¥¥¥), only [a-z0-9-_.] are allowed")) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed})) }) }) Context("when the app runner returns an error", func() { It("outputs error messages", func() { fakeAppRunner.CreateAppReturns(errors.New("Major Fault")) args := []string{ "cool-web-app", "superfun/app", "--", "/start-me-please", } test_helpers.ExecuteCommandWithArgs(createCommand, args) Expect(outputBuffer).To(test_helpers.SayLine("Error creating app: Major Fault")) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed})) }) }) Context("when a malformed tcp routes flag is passed", func() { It("errors out when the container port is not an int", func() {
err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{}) Expect(err).To(MatchError("invalid character 'i' looking for beginning of value")) }) It("returns an error when proxyConf reader fails", func() { fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader("{}")), nil) fakeBlobStore.DownloadDropletActionReturns(&models.DownloadAction{}) fakeProxyConfReader.ProxyConfReturns(droplet_runner.ProxyConf{}, errors.New("proxyConf has failed")) err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{}) Expect(err).To(MatchError("proxyConf has failed")) }) It("returns an error when create app fails", func() { fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader(`{}`)), nil) fakeAppRunner.CreateAppReturns(errors.New("nope")) err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{}) Expect(err).To(MatchError("nope")) }) }) Describe("RemoveDroplet", func() { It("recursively removes a droplets from the blob store", func() { config.SetBlobStore("blob-host", "7474", "dav-user", "dav-pass") Expect(config.Save()).To(Succeed()) fakeBlobStore.ListReturns([]blob.Blob{ {Path: "drippy/bits.zip"}, {Path: "drippy/droplet.tgz"}, {Path: "drippy/result.json"},